AVBlocks for .NET  2.3
Audio and Video Software Development Kit
PrimoSoftware.AVBlocks Namespace Reference

Classes

class  AudioStreamInfo
 Describes an elementary audio stream. More...
 
class  Block
 Provides functionality for audio and video encoding, decoding and transforming. More...
 
class  DataStreamInfo
 Describes a generic data stream More...
 
class  ErrorInfo
 Describes an AVBlocks error. More...
 
class  Hardware
 Enumerates available hardware codecs. More...
 
class  HwCodec
 Describes a hardware encoder, decoder or filter More...
 
class  HwDevice
 Describes a device that can be used for hardware accelerated encoding, decoding or processing More...
 
interface  IImmutable
 
class  Library
 Initializes AVBlocks and manages license information. More...
 
class  MediaBuffer
 A buffer for media data. More...
 
class  MediaInfo
 Analyzes a file or a stream and provides information about its type and properties. More...
 
class  MediaPin
 MediaPin represents an elementary media stream. More...
 
class  MediaPinList
 A collection of media pins More...
 
class  MediaSample
 Represents one or more samples of media data. More...
 
class  MediaSocket
 An input or output point of the Transcoder. More...
 
class  MediaSocketList
 A collection of media sockets More...
 
class  Meta
 Metadata attribute names (tags) More...
 
class  MetaAttribute
 MetaAttribute describes a textual meta information that is part of an audio or video file. More...
 
class  MetaAttributeList
 A collection of meta attributes More...
 
class  Metadata
 Metadata describes meta information that is part of an audio or video file. More...
 
class  MetaPicture
 MetaPicture describes a meta image that is part of an audio or video file. More...
 
class  MetaPictureList
 A collection of meta pictures More...
 
class  MimeType
 Multipurpose Internet Mail Extensions (MIME) used in AVBlocks More...
 
class  ObjectCollection
 An ordered collection of items used in AVBlocks. More...
 
class  Param
 Defines parameters that can be passed to the transcoder and to the components that are used in the transcoding process. More...
 
class  ParameterList
 A name-value collection used for passing parameters to different AVBlocks components.
 
class  PinConnection
 Defines pin connection disposition. More...
 
class  Preset
 Defines output presets supported by AVBlocks. More...
 
class  StreamInfo
 Provides properties and operations that are common for all elementary streams. More...
 
class  Transcoder
 Provides functionality for audio and video encoding, decoding and transforming. More...
 
class  TranscoderContinueEventArgs
 Contains the parameters of the Transcoder.OnContinue event. More...
 
class  TranscoderInputChangeEventArgs
 Contains the parameters of the Transcoder.OnInputChange event. More...
 
class  TranscoderProgressEventArgs
 Contains the parameters of the Transcoder.OnProgress event. More...
 
class  TranscoderStatusEventArgs
 Contains the parameters of the Transcoder.OnStatus event. More...
 
class  UnmanagedMediaBuffer
 Unmanaged buffer for media data. More...
 
class  VideoStreamInfo
 Describes an elementary video stream. More...
 

Enumerations

enum  AlphaCompositingMode {
  Over = 1,
  In = 2,
  Out = 3,
  Atop = 4,
  Xor = 5,
  Plus = 6
}
 Defines the way a foreground image will be combined with background video. More...
 
enum  AudioChannelFlags {
  None = 0x0,
  Left = 0x1,
  Right = 0x2,
  Center = 0x4,
  LFE = 0x8,
  BackLeft = 0x10,
  BackRight = 0x20,
  LeftCenter = 0x40,
  RightCenter = 0x80,
  BackCenter = 0x100,
  SideLeft = 0x200,
  SideRight = 0x400,
  TopCenter = 0x800,
  TopFrontLeft = 0x1000,
  TopFrontCenter = 0x2000,
  TopFrontRight = 0x4000,
  TopBackLeft = 0x8000,
  TopBackCenter = 0x10000,
  TopBackRight = 0x20000,
  LayoutMono = Center,
  LayoutStereo = Left | Right,
  Layout2p1 = Left | Right | LFE,
  LayoutSurround = Left | Right | Center | BackCenter,
  LayoutQuad = Left | Right | BackLeft | BackRight,
  Layout4p1 = Left | Right | LFE | BackLeft | BackRight,
  Layout5p1 = Left | Right | Center | LFE | BackLeft | BackRight,
  Layout7p1Surround = Left | Right | Center | LFE | BackLeft | BackRight | SideLeft | SideRight,
  Layout5p1Surround = Left | Right | Center | LFE | SideLeft | SideRight,
  Layout7p1 = Left | Right | Center | LFE | BackLeft | BackRight | LeftCenter | RightCenter
}
 Defines the speaker location of one or more audio channels. More...
 
enum  AVBlocksError {
  UnlicensedFeature = 9,
  LibraryNotInitialized = 10
}
 Defines API usage errors. More...
 
enum  BitrateMode {
  Unknown = 0,
  CBR = 1,
  VBR = 2,
  ABR = 3
}
 Defines the bitrate mode of the audio/video stream. More...
 
enum  CodecError {
  Init = 1,
  NoConfigData = 2,
  NoOutput = 3,
  OutputBufferNotEnough = 4,
  Unsupported = 5,
  Failed = 6,
  NotInitialized = 7,
  Null = 8,
  EOS = 9,
  Alloc = 10,
  InvalidStream = 11,
  NotImplemented = 12,
  InvalidParams = 13,
  InvalidOperation = 14,
  MissingDependency = 15,
  StreamOpen = 16,
  StreamRead = 17,
  StreamWrite = 18,
  StreamSeek = 19,
  BufferFull = 20,
  MissingHardwareIntelQuickSync = 21,
  MissingHardwareAmdVce = 22,
  MissingHardwareNvidiaNVENC = 23
}
 Common errors for encoders, decoders, muxers, demuxers and other A/V components. More...
 
enum  ColorFormat {
  Unknown = 0,
  YV12 = 1,
  NV12 = 2,
  YUY2 = 3,
  UYVY = 4,
  YUV411 = 5,
  YUV420 = 6,
  YUV422 = 7,
  YUV444 = 8,
  Y411 = 9,
  Y41P = 10,
  BGR32 = 11,
  BGR24 = 12,
  BGR565 = 13,
  BGR555 = 14,
  BGR444 = 15,
  GRAY = 16,
  YUV420A = 17,
  YUV422A = 18,
  YUV444A = 19,
  YVU9 = 20,
  BGRA32 = 21
}
 Defines constants for various color formats. More...
 
enum  DeinterlacingMethod {
  NoDeinterlacing = 0,
  Duplicate = 1,
  Blend = 2,
  Median = 3,
  EdgeDetect = 4,
  MedianThreshold = 5,
  CAVT = 6
}
 Defines video deinterlacing methods. More...
 
enum  ErrorFacility {
  Success = 0,
  SystemWindows = 1,
  SystemMacOSStatus = 2,
  SystemMacMach = 3,
  SystemPosix = 4,
  AVBlocks = 5,
  Transcoder = 6,
  Codec = 9
}
 Describes the AVBlocks facilities that could generate errors. More...
 
enum  H264DeblockingFilter {
  All = 0,
  Off = 1,
  InSlice = 2
}
 Defines H.264/AVC deblocking filter mode. More...
 
enum  H264DirectPredMode {
  Temporal = 0,
  Spatial = 1
}
 Defines H.264/AVC direct prediction mode. More...
 
enum  H264EntropyCodingMode {
  CAVLC = 0,
  CABAC = 1
}
 Defines H.264/AVC entropy coding modes More...
 
enum  H264MeMethod {
  Full = 0,
  ClassicLog = 1,
  Log = 2,
  EPZS = 3,
  FullOrthogonal = 4,
  LogOrthogonal = 5,
  UMH = 8
}
 Defines the motion estimation methods used when encoding H.264/AVC More...
 
enum  H264MeSplitMode {
  Only16x16 = 0,
  DownTo8x8 = 1,
  DownTo4x4 = 2
}
 Defines the block sizes for which motion estimation should be done. More...
 
enum  H264PicCodingType {
  Frames = 0,
  Fields = 1
}
 Defines the picture coding type when encoding H.264/AVC More...
 
enum  H264Profile {
  None = 0,
  Baseline = 66,
  Main = 77,
  High = 100,
  High10 = 110,
  High422 = 122,
  High444 = 144
}
 Defines H.264/AVC profiles More...
 
enum  H264RateControlMethod {
  ABR = 2,
  ConstantQuant = 3
}
 Defines methods for bitrate contorl when encoding H.264/AVC More...
 
enum  H265Level {
  None = 0,
  L1 = 30,
  L2 = 60,
  L21 = 63,
  L3 = 90,
  L31 = 93,
  L4 = 120,
  L41 = 123,
  L5 = 150,
  L51 = 153,
  L52 = 156,
  L6 = 180,
  L61 = 183,
  L62 = 186
}
 H.265 / HEVC Levels More...
 
enum  H265Profile {
  None = 0,
  Main = 1,
  Main10 = 2
}
 H.265 / HEVC Profiles More...
 
enum  H265Tier {
  Main = 0,
  High = 1
}
 H.265 / HEVC Tiers More...
 
enum  HardwareEncoder {
  Off = 0,
  Auto = 1,
  AMD = 2,
  Intel = 3,
  Nvidia = 4
}
 Defines known hardware encoders. More...
 
enum  HwApi {
  None = 0,
  IntelMedia = 1,
  Nvenc = 2,
  AmdOpenVideo = 3,
  AmdMedia = 4,
  MediaFoundation = 5
}
 API for using hardware engines More...
 
enum  HwCodecType {
  None = 0,
  H264Encoder = 1,
  H265Encoder = 2
}
 Hardware Codec type More...
 
enum  HwEngine {
  None = 0,
  QuickSyncVideo = 1,
  Nvenc = 2,
  VideoCodingEngine = 3
}
 Hardware engine for encoding/decoding/processing. More...
 
enum  HwVendor {
  None = 0,
  Intel = 1,
  Nvidia = 2,
  Amd = 3
}
 Hardware Vendor More...
 
enum  InterpolationMethod {
  Unknown = 0,
  NearestNeighbor = 1,
  Linear = 2,
  Cubic = 4,
  Super = 8,
  Lanczos = 16
}
 Defines methods for sample interpolation. More...
 
enum  LicenseStatusFlags {
  Ready = 0,
  ValidationInProgress = 1,
  DemoBuild = 2
}
 Defines the AVBlocks license status. More...
 
enum  MediaSampleFlags {
  None = 0x0,
  KeyFrame = 0x1,
  Bos = 0x2,
  Eos = 0x4
}
 Defines various media sample features. More...
 
enum  MediaType {
  Unknown = 0,
  Audio = 1,
  Video = 2,
  Text = 3,
  Data = 4
}
 Defines media types. More...
 
enum  MetaPictureType {
  Other = 0,
  FileIcon = 1,
  OtherFileIcon = 2,
  FrontCover = 3,
  BackCover = 4,
  LeafletPage = 5,
  Media = 6,
  LeadArtist = 7,
  Artist = 8,
  Conductor = 9,
  Band = 10,
  Composer = 11,
  TextWriter = 12,
  RecordingLocation = 13,
  DuringRecording = 14,
  DuringPerformance = 15,
  VideoCapture = 16,
  BrightColoredFish = 17,
  Illustration = 18,
  ArtistLogotype = 19,
  PublisherLogotype = 20
}
 Picture type defined as in ID3. More...
 
enum  PcmFlags {
  None = 0,
  Unsigned = 0x1,
  Float = 0x2,
  BigEndian = 0x4,
  NonInterleaved = 0x8
}
 Defines constants for various LPCM properties. More...
 
enum  PictureType {
  None = 0,
  I = 1,
  P = 2,
  B = 3,
  D = 4
}
 Defines video picture types (I/P/B) More...
 
enum  ScanType {
  Unknown = 0,
  Progressive = 1,
  TopFieldFirst = 2,
  BottomFieldFirst = 3
}
 Defines video interlace/scan types. More...
 
enum  StereoMode {
  None = 0,
  LR = 2,
  MidSide = 3,
  Joint = 4
}
 Defines stereo mode in MPEG Audio and AAC. More...
 
enum  StreamSubType {
  Unknown = 0,
  None = 65535,
  AacAdts = 1,
  AacAdif = 2,
  AacMp4 = 3,
  AvcC = 4,
  Avc1 = AvcC,
  MpegTsBdav = 5,
  MpegAudioLayer1 = 6,
  MpegAudioLayer2 = 7,
  MpegAudioLayer3 = 8,
  G726PackedRFC3551 = 9,
  G726PackedAAL2 = 10,
  Mpeg1System = 11,
  Mpeg2System = 12,
  AvcAnnexB = 13,
  AacRaw = 14
}
 Defines audio and video stream subtypes. More...
 
enum  StreamType {
  Unknown = 0,
  BEGIN_AUDIO = 0x1000,
  LPCM = 0x1001,
  ALawPCM = 0x1002,
  MuLawPCM = 0x1003,
  VideoDvdPCM = 0x1004,
  Ac3 = 0x1005,
  Dts = 0x1006,
  MpegAudio = 0x1007,
  Vorbis = 0x1008,
  Aac = 0x1009,
  AmrNarrowBand = 0x100A,
  AmrWideBand = 0x100B,
  G726ADPCM = 0x100C,
  Wma = 0x100D,
  Wma_Professional = 0x100E,
  Wma_Lossless = 0x100F,
  END_AUDIO = 0x1FFF,
  BEGIN_VIDEO = 0x2000,
  UncompressedVideo = 0x2001,
  Mpeg1Video = 0x2002,
  Mpeg2Video = 0x2003,
  Mpeg4Video = 0x2004,
  H261 = 0x2005,
  H263 = 0x2006,
  H264 = 0x2007,
  Avc = H264,
  Wmv = 0x2008,
  Mjpeg = 0x2009,
  Vc1 = 0x200A,
  Avs = 0x200B,
  Vp8 = 0x200C,
  Theora = 0x200D,
  H265 = 0x200E,
  Hevc = H265,
  END_VIDEO = 0x2FFF,
  BEGIN_CONTAINER = 0x3000,
  Avi = 0x3001,
  Mp4 = 0x3002,
  Asf = 0x3003,
  MpegPS = 0x3004,
  MpegTS = 0x3005,
  MpegPES = 0x3006,
  Wave = 0x3007,
  Flv = 0x3008,
  Ogg = 0x3009,
  WebM = 0x300A,
  END_CONTAINER = 0x3FFF,
  BEGIN_IMAGE = 0x4000,
  Bmp = 0x4001,
  Png = 0x4002,
  Jpeg = 0x4003,
  Tiff = 0x4004,
  Gif = 0x4005,
  END_IMAGE = 0x4FFF,
  BEGIN_DATA = 0x5000,
  Teletext = 0x5001,
  MpegPsiPackets = 0x5002,
  MpegTsPackets = 0x5003,
  END_DATA = 0x5FFF
}
 Defines major audio and video stream types, and file formats (a.k.a. More...
 
enum  TranscoderError {
  NoChain = 1,
  UndefinedSocketType = 2,
  UnsupportedInterlacedConversion = 3,
  NoCodec = 4,
  UnsupportedVideoConversion = 5,
  InputFull = 6,
  BufferFull = InputFull,
  InputNeeded = 7
}
 Defines Transcoder specific errors. More...
 
enum  TranscoderStatus { Completed = 0 }
 Defines the status of a transcoder operation. More...
 
enum  Use {
  Off = 0,
  On = 1,
  Auto = 2
}
 Specifies whether particular feature should be used. More...
 

Enumeration Type Documentation

enum AlphaCompositingMode
strong

Defines the way a foreground image will be combined with background video.

Enumerator
Over 

= 1

Foreground over Background - in effect, normal painting operation.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) + (1 - Fa) * (Ba * Brgb)

Normally, alpha blending implies a background alpha of 1.0 (Ba = 1.0), so the compositing result Rrgb becomes:

Rrgb = (Fa * Frgb) + (1 - Fa) * Brgb

Fa and Ba are alpha density value with range from 0.0 to 1.0

In 

= 2

Foreground in Background - the alpha compositing equivalent of clipping / itersection.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) * Ba

Fa and Ba are alpha density value with range from 0.0 to 1.0

Out 

= 3

Foreground outside Background.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) * (1 - Ba)

Fa and Ba are alpha density value with range from 0.0 to 1.0

Atop 

= 4

Foreground atop Background.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) * Ba + (1 - Fa) * (Ba * Brgb)

Fa and Ba are alpha density value with range from 0.0 to 1.0

Xor 

= 5

Foreground xor Background.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) * (1 - Ba) + (1 - Fa) * (Ba * Brgb)

Fa and Ba are alpha density value with range from 0.0 to 1.0

Plus 

= 6

Foreground plus Background.

If Fa is foreground alpha, Frgb is foreground RGB, Ba is background alpha, Brgb is background RGB, then Rrgb is the compositing result:

Rrgb = (Fa * Frgb) + (Ba * Brgb)

Fa and Ba are alpha density value with range from 0.0 to 1.0

enum AudioChannelFlags
strong

Defines the speaker location of one or more audio channels.

These channel constants are expressed as bit flags and can be combined together. A number of common speaker layouts are defined for convenience.

Enumerator
None 

= 0x0

No flag is set.

Left 

= 0x1

Left

Right 

= 0x2

Right

Center 

= 0x4

Center

LFE 

= 0x8

Low-frequency effect. Subwoofer.

BackLeft 

= 0x10

Back-left. Also known as Left Surround.

BackRight 

= 0x20

Back-right. Also known as Right Surround.

LeftCenter 

= 0x40

Front, left of center.

RightCenter 

= 0x80

Front, right of center.

BackCenter 

= 0x100

Back-center. Also known as Center Surround.

SideLeft 

= 0x200

Side-left. Also known as Left Surround Direct.

SideRight 

= 0x400

Side-right. Also known as Right Surround Direct.

TopCenter 

= 0x800

Top-center. Also known as Top Center Surround.

TopFrontLeft 

= 0x1000

Top-front-left. Also known as Vertical Height Left.

TopFrontCenter 

= 0x2000

Top-front-center. Also known as Vertical Height Center.

TopFrontRight 

= 0x4000

Top-front-right. Also known as Vertical Height Right.

TopBackLeft 

= 0x8000

Top-back-left

TopBackCenter 

= 0x10000

Top-back-center

TopBackRight 

= 0x20000

Top-back-right

LayoutMono 

Mono

LayoutStereo 

Stereo

Layout2p1 

Standard 3-channel layout (2.1)

LayoutSurround 

Standard 4-channel layout.

Surround.

LayoutQuad 

Alternative 4-channel layout.

Layout4p1 

Standard 5-channel layout (4.1)

Layout5p1 

Standard 6-channel layout (5.1)

Layout7p1Surround 

Standard 8-channel layout (7.1).

Surround.

Layout5p1Surround 

Alternative 6-channel layout (5.1).

Surround.

Layout7p1 

Alternative 8-channel layout (7.1)

enum AVBlocksError
strong

Defines API usage errors.

These errors are raised when the AVBlocks API is used incorrectly.

Enumerator
UnlicensedFeature 

= 9

A required feature (codec/format) is not licensed and demo mode is not enabled.

See also
Transcoder.AllowDemoMode
LibraryNotInitialized 

= 10

Library is not initialized.

See also
Library.Initialize
enum BitrateMode
strong

Defines the bitrate mode of the audio/video stream.

Enumerator
Unknown 

= 0

The bitrate mode is not specified or unknown.

CBR 

= 1

Constant bitrate.

For uncompressed audio/video with constant bitrate the quality is also constant. For compressed audio/video with constant bitrate the quality may be constant or variable.

VBR 

= 2

Variable bitrate - quality oriented. Constant quality (more or less).

ABR 

= 3

Average bitrate.

Guarantees a predictable audio/video size similar to CBR. The bitrate changes to achieve the best quality within the available bitrate capacity.

enum CodecError
strong

Common errors for encoders, decoders, muxers, demuxers and other A/V components.

Enumerator
Init 

= 1

Failed to initialize or open a codec.

NoConfigData 

= 2

Decoder config data is required, but missing.

NoOutput 

= 3

No output has been generated.

OutputBufferNotEnough 

= 4

The output buffer is not big enough for the generated output data.

Unsupported 

= 5

Unsupported format or operation.

Failed 

= 6

The operation failed for unknown reason.

NotInitialized 

= 7

The operation cannot be completed because the component is not initialized.

Null 

= 8

One or more of the input parameters are null but are expected to be valid pointers/references.

EOS 

= 9

End of stream; no more data.

Alloc 

= 10

Failed to allocate memory.

InvalidStream 

= 11

Invalid bitstream.

NotImplemented 

= 12

The operation is not implemented yet.

InvalidParams 

= 13

At least one of the input parameters has an invalid value for the specified operation. Check ErrorInfo.Hint for details.

InvalidOperation 

= 14

The operation is not allowed. Check ErrorInfo.Hint for details.

MissingDependency 

= 15

A required library/dependency is not present. Check ErrorInfo.Hint for details.

StreamOpen 

= 16

Could not open a user stream (System.IO.Stream).

StreamRead 

= 17

Could not read from a user stream (System.IO.Stream).

StreamWrite 

= 18

Could not write to a user stream (System.IO.Stream).

StreamSeek 

= 19

Could not seek in a user stream (System.IO.Stream).

BufferFull 

= 20

One of the input/output buffers is full and cannot accept more data.

MissingHardwareIntelQuickSync 

= 21

Intel QuickSync Video hardware not found.

MissingHardwareAmdVce 

= 22

AMD VCE hardware not found.

MissingHardwareNvidiaNVENC 

= 23

NVIDIA NVENC hardware not found.

enum ColorFormat
strong

Defines constants for various color formats.

A color format is combination of color space, color depth, chroma sub-sampling, component layout and packing.

Enumerator
Unknown 

= 0

The color format is not specified or unknown.

YV12 

= 1

Planar Y, V, U (4:2:0) (note V,U order!)

NV12 

= 2

Planar Y, merged U->V (4:2:0)

YUY2 

= 3

Composite Y->U->Y->V (4:2:2)

UYVY 

= 4

Composite U->Y->V->Y (4:2:2)

YUV411 

= 5

Planar Y, U, V (4:1:1)

YUV420 

= 6

Planar Y, U, V (4:2:0)

YUV422 

= 7

Planar Y, U, V (4:2:2)

YUV444 

= 8

Planar Y, U, V (4:4:4)

Y411 

= 9

Composite Y, U, V (4:1:1)

Y41P 

= 10

Composite Y, U, V (4:1:1)

BGR32 

= 11

Composite B->G->R

BGR24 

= 12

Composite B->G->R

BGR565 

= 13

Composite B->G->R, 5 bit per B & R, 6 bit per G

BGR555 

= 14

Composite B->G->R->A, 5 bit per component, 1 bit per A

BGR444 

= 15

Composite B->G->R->A, 4 bit per component

GRAY 

= 16

Luminance component only.

YUV420A 

= 17

Planar Y, U, V, Alpha

YUV422A 

= 18

Planar Y, U, V, Alpha

YUV444A 

= 19

Planar Y, U, V, Alpha

YVU9 

= 20

The vertical subsampling interval is 4. The horizontal subsampling interval is also 4 This means that a single V and a single U sample are taken for each square block of 16 image pixels. Effectively this averages 9 bits per pixel (16 pixels => 16Y + 1V + 1U => 144bits => 9bits/pixel)

BGRA32 

= 21

Composite B->G->R->A

enum DeinterlacingMethod
strong

Defines video deinterlacing methods.

Enumerator
NoDeinterlacing 

= 0

No deinterlacing is performed. This can be used to prevent atomatic deinterlacing if it's not desired.

Duplicate 

= 1

Line doubling.

Blend 

= 2

Motion adaptive deinterlacing.

Median 

= 3

Calculates the median of consecutive fields

EdgeDetect 

= 4

Uses an edge detection filter.

MedianThreshold 

= 5

Calculates the median of consecutive fields using a threshold.

CAVT 

= 6

Content adaptive vertical temporal (CAVT) filtering.

enum ErrorFacility
strong

Describes the AVBlocks facilities that could generate errors.

Each facility represents either an external component or a component implemented by AVBlocks.

Often error codes will have the same value, but different meaning depending on the facility that generated the error.

Enumerator
Success 

= 0

Not a facility. This is a special value that indicates a successful operation.

SystemWindows 

= 1

Windows System Error

SystemMacOSStatus 

= 2

MacOS Status (Mac)

SystemMacMach 

= 3

Mach Error (Mac)

SystemPosix 

= 4

POSIX Error (Linux, Mac)

AVBlocks 

= 5

AVBlocks API error. The error code is a value from the AVBlocksError enum.

Transcoder 

= 6

Transcoder error. The error code is a value from the TranscoderError enum.

Codec 

= 9

Codec error. The error code is a value from the CodecError enum.

enum H264DeblockingFilter
strong

Defines H.264/AVC deblocking filter mode.

The constants follow the H.264 spec for the element "disable_deblocking_filter_idc"

Enumerator
All 

= 0

Deblocking filter is applied on all luma and chroma block edges of the slice.

Off 

= 1

Deblocking filter is disabled for all block edges of the slice.

InSlice 

= 2

Deblocking filter is applied on all luma and chroma block edges of the slice with exception of the block edges that coincide with slice boundaries.

enum H264DirectPredMode
strong

Defines H.264/AVC direct prediction mode.

The constants follow the H.264 spec for the element "direct_spatial_mv_pred_flag"

Enumerator
Temporal 

= 0

Temporal direct mode prediction

Spatial 

= 1

Spatial direct mode prediction

enum H264EntropyCodingMode
strong

Defines H.264/AVC entropy coding modes

The constants follow the H.264 spec for the element "entropy_coding_mode_flag"

Enumerator
CAVLC 

= 0

Context-Adaptive Variable-Length Coding (CAVLC)

CABAC 

= 1

Context-Adaptive Binary Arithmetic Coding (CABAC)

enum H264MeMethod
strong

Defines the motion estimation methods used when encoding H.264/AVC

Enumerator
Full 

= 0

Full (slowest)

ClassicLog 

= 1

TDL (Two Dimensional Logarithmic Search)

Log 

= 2

Log

EPZS 

= 3

EPZS (Enhanced Predictive Zonal Search)

FullOrthogonal 

= 4

OSA (Full orthogonal)

LogOrthogonal 

= 5

Log orthogonal

UMH 

= 8

UMH (Uneven Multi-Hexagon Search)

enum H264MeSplitMode
strong

Defines the block sizes for which motion estimation should be done.

Used when encoding H.264/AVC.

Enumerator
Only16x16 

= 0

Analyze only 16x16 blocks for motion estimation

DownTo8x8 

= 1

Analyze all blocks down to 8x8 (16x16, 16x8, 8x16, 8x8)

DownTo4x4 

= 2

Analyze all blocks down to 4x4 (16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4).

This partitioning mode is very slow.

enum H264PicCodingType
strong

Defines the picture coding type when encoding H.264/AVC

Enumerator
Frames 

= 0

Video pictures are coded as frames (progressive video)

Fields 

= 1

Video pictures are coded as fields (interlaced video)

enum H264Profile
strong

Defines H.264/AVC profiles

The constants follow the H.264 spec for the element "profile_idc"

Enumerator
None 

= 0

None/Auto

Baseline 

= 66

Baseline profile

Main 

= 77

Main profile

High 

= 100

High profile

High10 

= 110

High 10

High422 

= 122

High 4:2:2

High444 

= 144

High 4:4:4

enum H264RateControlMethod
strong

Defines methods for bitrate contorl when encoding H.264/AVC

Enumerator
ABR 

= 2

Average Bitrate.

Ensures that the output stream achieves a predictable long-term average bitrate.

ConstantQuant 

= 3

Constant Quantization.

Encodes the video to a constant quantizer. The encoder uses the specified target quantizer, not a target bitrate. The quantizer is a measure for the amount of data loss: a higher quantizer means that more data will be lost, which results in a better compression, but also delivers worse visual quality. This method could be used when a certain level of quality is required and the final bitrate is not a concern. The bitrate is unpredictable in this mode.

enum H265Level
strong

H.265 / HEVC Levels

Enumerator
None 

None / Auto

L1 

= 30

L2 

= 60

L21 

= 63

L3 

= 90

L31 

= 93

L4 

= 120

L41 

= 123

L5 

= 150

L51 

= 153

L52 

= 156

L6 

= 180

L61 

= 183

L62 

= 186

enum H265Profile
strong

H.265 / HEVC Profiles

Enumerator
None 

= 0
None/Auto

Main 

= 1
Main profile

Main10 

= 2
Main10 profile

enum H265Tier
strong

H.265 / HEVC Tiers

Enumerator
Main 

= 0

High 

= 1

enum HardwareEncoder
strong

Defines known hardware encoders.

Enumerator
Off 

= 0

Hardware encoders are disabled.

Auto 

= 1

The encoder is selected automatically depending on the available hardware.

The order of preference is: Intel QuickSync, Nvidia NVENC, AMD VCE. If none of the known encoders are available then a software encoder is used.

AMD 

= 2

AMD Video Coding Engine (VCE)

Intel 

= 3

Intel QuickSync Video

Nvidia 

= 4

Nvidia NVENC

enum HwApi
strong

API for using hardware engines

Enumerator
None 

= 0

HwApi not specified

IntelMedia 

= 1

Intel Media SDK

Nvenc 

= 2

NVENC SDK

AmdOpenVideo 

= 3

AMD OpenVideo

AmdMedia 

= 4

AMF (AMD Media Framework)

MediaFoundation 

= 5

Windows Media Foundation

enum HwCodecType
strong

Hardware Codec type

Enumerator
None 

= 0

Hardware Codec type not specified

H264Encoder 

= 1

H.264/AVC Encoder

H265Encoder 

= 2

H.265/HEVC Encoder

enum HwEngine
strong

Hardware engine for encoding/decoding/processing.

Enumerator
None 

= 0

HwEngine not specified

QuickSyncVideo 

= 1

Intel Quick Sync Video

Nvenc 

= 2

Nvidia NVENC

VideoCodingEngine 

= 3

AMD Video Coding Engine (VCE)

enum HwVendor
strong

Hardware Vendor

Enumerator
None 

= 0

Hardware Vendor not specified

Intel 

= 1

Intel Corporation

Nvidia 

= 2

Nvidia Corporation

Amd 

= 3

Advanced Micro Devices, Inc.

enum InterpolationMethod
strong

Defines methods for sample interpolation.

Enumerator
Unknown 

= 0

The interpolation method is unknown or not set.

NearestNeighbor 

= 1

Nearest neighbor interpolation

Linear 

= 2

Linear interpolation

Cubic 

= 4

Cubic convolution interpolation

Super 

= 8

Supersampling interpolation

Lanczos 

= 16

Interpolation by 3-lobed Lanczos-windowed sinc function.

enum LicenseStatusFlags
strong

Defines the AVBlocks license status.

When a license is set it may take some time until the license is resolved by the library.

See also
Library.SetLicense, Library.LicenseStatus
Enumerator
Ready 

= 0

The licensed state is permanent. It can be changed only by calling Library.SetLicense.

The Resolved status does not imply that the library or any component is successfully licensed.

ValidationInProgress 

= 1

The license is being validated and the current licensed state in AVBlocks is temporary.

DemoBuild 

= 2

This is a Demo build of AVBlocks. The library cannot be licensed and always operates in Demo mode.

enum MediaSampleFlags
strong

Defines various media sample features.

These features are expressed as bit flags and can be combined together.

Enumerator
None 

= 0x0

No feature is specified.

KeyFrame 

= 0x1

The media sample / frame can be decoded on its own. It does not depend on previous or subsequent samples / frames.

Bos 

= 0x2

Beginning of stream

Eos 

= 0x4

End of stream

enum MediaType
strong

Defines media types.

Enumerator
Unknown 

= 0

The media type is unknown or not specified.

Audio 

= 1

Audio data.

Video 

= 2

Video data.

Text 

= 3

Text data.

Data 

= 4

Generic data.

enum MetaPictureType
strong

Picture type defined as in ID3.

Enumerator
Other 

= 0

Unknown or unspecified picture type

FileIcon 

= 1

32x32 pixels 'file icon' (PNG only); only one in a ID3 tag

OtherFileIcon 

= 2

only one in a ID3 tag

FrontCover 

= 3

Album/Disc front cover

BackCover 

= 4

Album/Disc back cover

LeafletPage 

= 5

Album/Disc leaflet page

Media 

= 6

Printed on the media (e.g. label side of a CD)

LeadArtist 

= 7

Lead artist / Lead performer / Soloist

Artist 

= 8

Artist / Performer

Conductor 

= 9

Conductor

Band 

= 10

Band / Orchestra

Composer 

= 11

Composer / Music writer

TextWriter 

= 12

Lyricist / Text writer

RecordingLocation 

= 13

Location where the music is recorded

DuringRecording 

= 14

The picture is made during recording

DuringPerformance 

= 15

The picture is made during performance

VideoCapture 

= 16

Movie/video screen capture

BrightColoredFish 

= 17

A brightly coloured fish :0

Illustration 

= 18

Illustration

ArtistLogotype 

= 19

Band / Artist logotype

PublisherLogotype 

= 20

Publisher / Studio logotype

enum PcmFlags
strong

Defines constants for various LPCM properties.

The constants are expressed as bit flags and can be combined together.

AudioStreamInfo.PcmFlags

Enumerator
None 

= 0

No flag is set.

Unsigned 

= 0x1

The audio sample should be interpreted as an unsigned integral value.

The sample resolution (8-bit, 16-bit, etc.) is a separate LPCM property and is not expressed with PcmFlags. This flag is irrelevant when the Float flag is set.

Float 

= 0x2

The audio sample should be interpreted as a floating point value.

The sample resolution (32-bit, 64-bit, etc.) is a separate LCPM property and is not expressed with PcmFlags.

BigEndian 

= 0x4

The sample value is stored in a big endian format. When this flag is not set the sample format is little endian.

NonInterleaved 

= 0x8

When this flag is set audio samples from different channels are not interleaved. All samples from channel 0 are first in memory. They are followed by all samples from channel 1 and so on for all channels.

When this flag is not set the samples are interleaved. The first samples from all channels are first in memory. They are followed by the second samples from all channels and so on until the last sample in time.

enum PictureType
strong

Defines video picture types (I/P/B)

Enumerator
None 

Picture type is unknown or not specified.

I Picture

P Picture

B Picture

D Picture (MPEG-1 only)

enum ScanType
strong

Defines video interlace/scan types.

Enumerator
Unknown 

= 0

The interlace/scan type is not specified or not known.

Progressive 

= 1

Progressive (non-interlaced) video.

TopFieldFirst 

= 2

Interlaced video, where the dominant (first in time) field is the top field.

BottomFieldFirst 

= 3

Interlaced video, where the dominant (first in time) field is the bottom field.

enum StereoMode
strong

Defines stereo mode in MPEG Audio and AAC.

Enumerator
None 

= 0
None/LR mode is chosen by default.

LR 

= 2
If MPEG Audio/AAC encoder is used with LR mode the encoding will be done using normal independent coding of left and right channels.

MidSide 

= 3
If AAC encoder is used with mode MidSide the encoding will be done using Mid/Side coding technique.

If MPEG Audio encoder is used with this mode:

  • Layers 1 and 2: the encoding will be done using normal independent coding of left and right channels(same as LR mode)
  • Layer 3: the encoding will be done using Mid/Side coding technique.
Joint 

= 4
If AAC encoder is used with mode Joint the encoding of every frame will be done with Mid/Side or Left-Right Stereo coding technique depending on the data present in the frame.

If MPEG Audio encoder is used with this mode:

  • Layer 1: the encoding will be done using normal independent coding of left and right channels(same as LR mode).
  • Layer 2: the encoding will use Intensity coding technique when the bit rate is lower than 96Kb/s for 2 channel setup in combination with normal independent coding of left and right channels, otherwise will use only left and right coding.
  • Layer 3: the encoding of every frame will be done with Mid/Side or Left-Right Stereo coding technique depending on the data present in the frame.
enum StreamSubType
strong

Defines audio and video stream subtypes.

Enumerator
Unknown 

= 0

The stream subtype is not defined or is unknown.

None 

= 65535

No stream sub type is defined.

AacAdts 

= 1

Audio Data Transport Stream: AAC data in frames, similar to mp3. Somewhat compliant. Defined in Part 7 of the MPEG-2 standard (known formally as ISO/IEC 13818-7).

AacAdif 

= 2

Audio Data Interchange Format: AAC data with a single header. Worst compliance. Defined in Part 7 of the MPEG-2 standard (known formally as ISO/IEC 13818-7).

AacMp4 

= 3

AAC data packed in MPEG-4 container (MP4). Best compliance.

AvcC 

= 4

H.264/AVC bitstream without start codes.

This is how the bitstream is stored in a MPEG-4 container (MP4). Instead of start codes, each NALU is prefixed by a length field, which gives the length of the NALU in bytes. The size of the length field can vary, but is typically 1, 2, or 4 bytes. Defined in ISO 14496-15.

Avc1 

Alias.

Same as StreamSubType.AvcC.

MpegTsBdav 

= 5

MPEG2 transport stream with valid packet time stamps.

MpegAudioLayer1 

= 6

MPEG-1 Audio Layer I is commonly abbreviated to MP1. MPEG-1 Layer I is defined in ISO/IEC 11172-3.

MPEG-2 Layer I is defined in the MPEG-2 Part 3 standard (known formally as ISO/IEC 13818-3).

MpegAudioLayer2 

= 7

MPEG-1 Audio Layer II is commonly abbreviated to MP2. MP2 is a dominant standard for audio broadcasting. MPEG-1 Layer II is defined in ISO/IEC 11172-3.

MPEG-2 Layer II is defined in the MPEG-2 Part 3 standard (known formally as ISO/IEC 13818-3).

MpegAudioLayer3 

= 8

MPEG-1 Audio Layer III is commonly abbreviated to MP3. MPEG-1 Layer III is defined in ISO/IEC 11172-3.

MPEG-2 Layer III is defined in the MPEG-2 Part 3 standard (known formally as ISO/IEC 13818-3).

G726PackedRFC3551 

= 9

G.726 stream packed according to RFC 3551. This type of packetization is used in RTP.

G726PackedAAL2 

= 10

G.726 stream packed according to ITU-T I.366.2 (AAL type 2). This type of packetization is used in Wave files.

Mpeg1System 

= 11

MPEG-1 Program Stream as specified in MPEG-1 Part 1 (ISO/IEC 11172-1). This stream subtype can be used only with the StreamType.MpegPS stream type.

Mpeg2System 

= 12

MPEG-2 Program Stream as specified in MPEG-2 Part 1 (ISO/IEC 13818-1). This stream subtype can be used only with the StreamType.MpegPS stream type.

AvcAnnexB 

= 13

H.264 bitstream with start codes (Annex B of ITU-T Rec. H.264).

H.264 bitstreams are transmitted in this format over the air, or contained in MPEG-2 program or transport streams. The H.264 bitstream is formatted as described in Annex B of ITU-T Rec. H.264. According to this specification, the bitstream consists of a sequence of NALUs (Network Abstraction Layer Units). Each NALU is prefixed with a start code equal to 0x000001 or 0x00000001.

AacRaw 

= 14

Raw AAC data format: AAC data is stored without headers.

enum StreamType
strong

Defines major audio and video stream types, and file formats (a.k.a.

containers).

Enumerator
Unknown 

= 0

The stream type is not defined or is unknown.

BEGIN_AUDIO 

= 0x1000

This constant marks the start of audio elementary streams. It is not a valid stream type on its own.

LPCM 

= 0x1001

Audio encoded using pulse code modulation (PCM) with linear quantization.

ALawPCM 

= 0x1002

A-law PCM.

MuLawPCM 

= 0x1003

Mu-law PCM.

VideoDvdPCM 

= 0x1004

LPCM with specific sample packing for Video-DVD.

Ac3 

= 0x1005

Dolby Digital Audio (a.k.a. AC-3). AC-3 is defined in ATSC A/52-A and A/52-B.

Dts 

= 0x1006

DTS (Digital Theater Systems) Coherent Acoustics codec, transportable through S/PDIF and used on DVDs, CD-DAs, LDs, and in wave files.

MpegAudio 

= 0x1007

MPEG-1 or MPEG-2 Audio, Layer I, II and III.

Vorbis 

= 0x1008

Vorbis Audio Codec. This is an open standard audio codec developed by the Xiph.Org Foundation.

Aac 

= 0x1009

Advanced Audio Coding.

Initially it was defined in Part 7 of the MPEG-2 standard (known formally as ISO/IEC 13818-7) which is now obsolete.

Currently it is defined in Part 3 of the MPEG-4 standard (known formally as ISO/IEC 14496-3).

AmrNarrowBand 

= 0x100A

Adaptive Multi-Rate audio (Narrow Band).

AmrWideBand 

= 0x100B

Adaptive Multi-Rate audio (Wide Band).

G726ADPCM 

= 0x100C

G.726 ITU-T ADPCM.

Wma 

= 0x100D

Microsoft Windows Media Audio.

Wma_Professional 

= 0x100E

Microsoft Windows Media Audio Professional.

Wma_Lossless 

= 0x100F

Microsoft Windows Media Audio Lossless.

END_AUDIO 

= 0x1FFF

This constant marks the end of audio elementary streams. It is not a valid stream type on its own.

BEGIN_VIDEO 

= 0x2000

This constant marks the start of video elementary streams. It is not a valid stream type on its own.

UncompressedVideo 

= 0x2001

Uncompressed video stream.

Mpeg1Video 

= 0x2002

MPEG-1 Video is defined in Part 2 of the MPEG-1 standard (known formally as ISO/IEC-11172-2).

Mpeg2Video 

= 0x2003

MPEG-2 Video is defined in Part 2 of the MPEG-2 standard (known formally as ISO/IEC 13818-2 and as ITU-T H.262).

Mpeg4Video 

= 0x2004

MPEG-4 Video is defined in Part 2 of the MPEG-4 standard (known formally as ISO/IEC 14496-2).

H261 

= 0x2005

H.261 Video is defined in the ITU-T H.261 standard.

H263 

= 0x2006

H.263 Video is defined in the ITU-T H.263 standard.

H264 

= 0x2007

H.264 Video (also known as MPEG-4 AVC / Advanced Video Codec).

Defined in Part 10 of the MPEG-4 standard (known formally as ISO/IEC 14496-10 and as ITU-T H.264).

The actual bitstream format is determined by the stream sub-type:

StreamSubType.AvcAnnexB

H.264 Bitstream WITH start codes

H.264 bitstreams are transmitted in this format over the air, or contained in MPEG-2 program or transport streams. The H.264 bitstream is formatted as described in Annex B of ITU-T Rec. H.264. According to this specification, the bitstream consists of a sequence of NALUs (Network Abstraction Layer Units). Each NALU is prefixed with a start code equal to 0x000001 or 0x00000001.

StreamSubType.Avc1

H.264 Bitstream WITHOUT start codes

H.264 bitstreams are stored in the MP4 container in this format. Instead of start codes, each NALU (Network Abstraction Layer Units) is prefixed by a length field, which gives the length of the NALU in bytes. The size of the length field can vary, but is typically 1, 2, or 4 bytes.

Avc 

= 0x2007

Alias. Same as StreamType.H264.

Wmv 

= 0x2008

Microsoft Windows Media Video.

Mjpeg 

= 0x2009

Motion JPEG (M-JPEG).

Vc1 

= 0x200A

VC-1 Video is defined in the SMPTE 421M-2006 standard.

Avs 

= 0x200B

Advanced Video Standard (Chinese national standard)

Vp8 

= 0x200C

VP8 is an open video codec released by Google, originally created by On2 Technologies. VP8 is part of the WebM format.

Theora 

= 0x200D

Theora Video Codec. This is an open standard video codec developed by the Xiph.Org Foundation.

H265 

= 0x200E

H.265 Video (also known as MPEG-H HEVC / High Efficiency Video Codec )

Defined in Part 2 of the MPEG-H standard (known formally as ISO/IEC 23008-2 and as ITU-T H.265).

Hevc 

= 0x200E

Alias. Same as StreamType.H265.

END_VIDEO 

= 0x2FFF

This constant marks the end of the elementary video streams. It is not a valid stream type on its own.

BEGIN_CONTAINER 

= 0x3000

This constant marks the start of file formats (a.k.a. containers). It is not a valid stream type on its own.

Avi 

= 0x3001

Audio Video Interleave (AVI) multimedia container format.

Mp4 

= 0x3002

MPEG-4 multimedia container format specified in Part 14 of the MPEG-4 standard (formally ISO/IEC 14496-14:2003).

Asf 

= 0x3003

Advanced Systems Format (formerly Advanced Streaming Format, Active Streaming Format) (ASF).

MpegPS 

= 0x3004

MPEG Program Stream.

MpegTS 

= 0x3005

MPEG Transport Stream.

MpegPES 

0x3006

MPEG Packetized Elementary Stream (PES).

Wave 

= 0x3007

Waveform Audio file format (WAV, WAVE).

Flv 

= 0x3008

Adobe Flash Video container format (FLV). This should not be confused with F4V which is a newer Flash Video container format based on ISO/IEC 14496-12 (MPEG-4 Part 12).

Ogg 

= 0x3009

Open standard container format developed by the Xiph.Org Foundation.

WebM 

= 0x300A

Open standard container format released by Google and based on a profile of Matroska.

END_CONTAINER 

= 0x3FFF

This constant marks the end of audio/video containers. It is not a valid stream type on its own.

BEGIN_IMAGE 

= 0x4000

This constant marks the start of image types. It is not a valid stream type on its own.

Bmp 

= 0x4001

BMP image.

Png 

= 0x4002

PNG image.

Jpeg 

= 0x4003

JPEG image.

Tiff 

= 0x4004

TIFF image.

Gif 

= 0x4005

GIF image.

END_IMAGE 

= 0x4FFF

This constant marks the end of image types. It is not a valid stream type on its own.

BEGIN_DATA 

= 0x5000

This constant marks the start of various data types. It is not a valid stream type on its own.

Teletext 

= 0x5001

Teletext data.

MpegPsiPackets 

= 0x5002

MPEG Transport Stream Program Specific Information

MpegTsPackets 

= 0x5003

MPEG Transport Stream packets. This is not a complete transport stream but rather a subset of the complete transport stream.

END_DATA 

= 0x5FFF

This constant marks the end of various data types. It is not a valid stream type on its own.

enum TranscoderError
strong

Defines Transcoder specific errors.

The Transcoder may also return errors like AVBlocksError, CodecError and others.

Enumerator
NoChain 

= 1

The transcoder could not build a processing chain based on its inputs and outputs. Either the transcoder inputs and outputs are not configured properly or they are not compatible with each other.

This error is returned by Transcoder.Open

UndefinedSocketType 

= 2

The stream type of a MediaSocket is not defined. When a media socket describes a file, the stream type is deduced from the file extension. When a media socket describes a stream the stream type must be set explicitly. See StreamType.

This error is returned by Transcoder.Open

UnsupportedInterlacedConversion 

= 3

It is not possible to convert from progressive to interlaced video.

Also it is not possible to switch interlace type from top-first to bottom-first or vice versa.

This error is returned by Transcoder.Open

NoCodec 

= 4

A required encoder or decoder is not available.

UnsupportedVideoConversion 

= 5

It is not possible to convert from one uncompressed video format to another. See ColorFormat.

InputFull 

= 6

Cannot accept more input through Transcoder.Push. Call Transcoder.Pull to obtain output samples.

BufferFull 

= 6

Cannot accept more input through Transcoder.Push. Call Transcoder.Pull to obtain output samples.

InputNeeded 

= 7

Cannot return output through Transcoder.Pull. Call Transcoder.Push to provide input samples.

enum TranscoderStatus
strong

Defines the status of a transcoder operation.

It is sent with the Transcoder.OnStatus event.

See also
Transcoder.OnStatus, TranscoderStatusEventArgs
Enumerator
Completed 

= 0

Transcoder.Run has completed successfully.

enum Use
strong

Specifies whether particular feature should be used.

Enumerator
Off 

= 0

The feature is OFF.

On 

= 1

The feature is ON.

Auto 

= 2

The feature usage is automatic.