# opalplugin.h File Reference

`#include <time.h>`

Include dependency graph for opalplugin.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | PluginCodec_information
struct | PluginCodec_ControlDefn
struct | PluginCodec_Option
struct | PluginCodec_Definition
union | PluginCodec_Definition::_parm
struct | PluginCodec_Definition::_parm::_audio
struct | PluginCodec_Definition::_parm::_video
struct | PluginCodec_H323CapabilityExtension
struct | PluginCodec_H323NonStandardCodecData
struct | PluginCodec_H323GenericParameterDefinition
struct | PluginCodec_H323GenericCodecData
struct | PluginCodec_H323AudioGSMData
struct | PluginCodec_H323AudioG7231AnnexC
struct | PluginCodec_Video_FrameHeader

## Defines

#define | _CRT_NONSTDC_NO_DEPRECATE 1
#define | _CRT_SECURE_NO_WARNINGS 1
#define | PLUGIN_CODEC_DLL_API
#define | PWLIB_PLUGIN_API_VERSION 1
#define | PLUGIN_CODEC_VERSION_FIRST 1
#define | PLUGIN_CODEC_VERSION_WIDEBAND 2
#define | PLUGIN_CODEC_VERSION_VIDEO 3
#define | PLUGIN_CODEC_VERSION_FAX 4
#define | PLUGIN_CODEC_VERSION_OPTIONS 5
#define | PLUGIN_CODEC_VERSION_INTERSECT 6
#define | PLUGIN_CODEC_VERSION_H245_DEF_GEN_PARAM 7
#define | PLUGIN_CODEC_VERSION PLUGIN_CODEC_VERSION_H245_DEF_GEN_PARAM
#define | PLUGIN_CODEC_API_VER_FN PWLibPlugin_GetAPIVersion
#define | PLUGIN_CODEC_API_VER_FN_STR "PWLibPlugin_GetAPIVersion"
#define | PLUGIN_CODEC_GET_CODEC_FN OpalCodecPlugin_GetCodecs
#define | PLUGIN_CODEC_GET_CODEC_FN_STR "OpalCodecPlugin_GetCodecs"
#define | PLUGIN_CODEC_API_VER_FN_DECLARE
#define | PluginCodec_SetChannels(n) (((n-1)<<PluginCodec_ChannelsPos)&PluginCodec_ChannelsMask)
#define | PLUGINCODEC_CONTROL_VALID_FOR_PROTOCOL "valid_for_protocol"
#define | PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS "get_codec_options"
#define | PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS "free_codec_options"
#define | PLUGINCODEC_CONTROL_GET_OUTPUT_DATA_SIZE "get_output_data_size"
#define | PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS "set_codec_options"
#define | PLUGINCODEC_CONTROL_GET_ACTIVE_OPTIONS "get_active_options"
#define | PLUGINCODEC_CONTROL_TO_NORMALISED_OPTIONS "to_normalised_options"
#define | PLUGINCODEC_CONTROL_TO_CUSTOMISED_OPTIONS "to_customised_options"
#define | PLUGINCODEC_CONTROL_SET_INSTANCE_ID "set_instance_id"
#define | PLUGINCODEC_CONTROL_SET_LOG_FUNCTION "set_log_function"
#define | PLUGINCODEC_CONTROL_GET_STATISTICS "get_statistics"
#define | PLUGINCODEC_CONTROL_TERMINATE_CODEC "terminate_codec"
#define | PluginCodec_H245_Collapsing 0x40000000
#define | PluginCodec_H245_NonCollapsing 0x20000000
#define | PluginCodec_H245_Unsigned32 0x10000000
#define | PluginCodec_H245_BooleanArray 0x08000000
#define | PluginCodec_H245_TCS 0x04000000
#define | PluginCodec_H245_OLC 0x02000000
#define | PluginCodec_H245_ReqMode 0x01000000
#define | PluginCodec_H245_OrdinalMask 0x0000ffff
#define | PluginCodec_H245_PositionMask 0x00ff0000
#define | PluginCodec_H245_PositionShift 16
#define | PLUGINCODEC_OPTION_NEEDS_JITTER "Needs Jitter"
#define | PLUGINCODEC_OPTION_CLOCK_RATE "Clock Rate"
#define | PLUGINCODEC_OPTION_CHANNELS "Channels"
#define | PLUGINCODEC_OPTION_FRAME_TIME "Frame Time"
#define | PLUGINCODEC_OPTION_MAX_FRAME_SIZE "Max Frame Size"
#define | PLUGINCODEC_OPTION_MAX_TX_PACKET_SIZE "Max Tx Packet Size"
#define | PLUGINCODEC_OPTION_MAX_BIT_RATE "Max Bit Rate"
#define | PLUGINCODEC_OPTION_TARGET_BIT_RATE "Target Bit Rate"
#define | PLUGINCODEC_OPTION_RATE_CONTROL_PERIOD "Rate Control Period"
#define | PLUGINCODEC_OPTION_RX_FRAMES_PER_PACKET "Rx Frames Per Packet"
#define | PLUGINCODEC_OPTION_TX_FRAMES_PER_PACKET "Tx Frames Per Packet"
#define | PLUGINCODEC_OPTION_FRAME_WIDTH "Frame Width"
#define | PLUGINCODEC_OPTION_FRAME_HEIGHT "Frame Height"
#define | PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH "Min Rx Frame Width"
#define | PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT "Min Rx Frame Height"
#define | PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH "Max Rx Frame Width"
#define | PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT "Max Rx Frame Height"
#define | PLUGINCODEC_OPTION_TEMPORAL_SPATIAL_TRADE_OFF "Temporal Spatial Trade Off"
#define | PLUGINCODEC_OPTION_TX_KEY_FRAME_PERIOD "Tx Key Frame Period"
#define | PLUGINCODEC_OPTION_PROTOCOL "Protocol"
#define | PLUGINCODEC_OPTION_PROTOCOL_H323 "H.323"
#define | PLUGINCODEC_OPTION_PROTOCOL_SIP "SIP"
#define | PLUGINCODEC_RAW_AUDIO "L16"
#define | PLUGINCODEC_RAW_VIDEO "YUV420P"
#define | PLUGINCODEC_VIDEO_CLOCK 90000
#define | PLUGINCODEC_MAX_FRAME_RATE 30
#define | PLUGINCODEC_CIF_WIDTH 352
#define | PLUGINCODEC_CIF_HEIGHT 288
#define | PLUGINCODEC_CIF4_WIDTH (PLUGINCODEC_CIF_WIDTH*2)
#define | PLUGINCODEC_CIF4_HEIGHT (PLUGINCODEC_CIF_HEIGHT*2)
#define | PLUGINCODEC_CIF16_WIDTH (PLUGINCODEC_CIF_WIDTH*4)
#define | PLUGINCODEC_CIF16_HEIGHT (PLUGINCODEC_CIF_HEIGHT*4)
#define | PLUGINCODEC_QCIF_WIDTH (PLUGINCODEC_CIF_WIDTH/2)
#define | PLUGINCODEC_QCIF_HEIGHT (PLUGINCODEC_CIF_HEIGHT/2)
#define | PLUGINCODEC_QCIF4_WIDTH (PLUGINCODEC_CIF4_WIDTH/2)
#define | PLUGINCODEC_QCIF4_HEIGHT (PLUGINCODEC_CIF4_HEIGHT/2)
#define | PLUGINCODEC_SQCIF_WIDTH 128
#define | PLUGINCODEC_SQCIF_HEIGHT 96
#define | __TIMESTAMP__ "0"
#define | PLUGINCODEC_LICENSE(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15) static struct PluginCodec_information MyLicenseInfo = { 0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,__TIMESTAMP__ }
#define | PLUGINCODEC_CODEC_PAIR(MediaFormat,PayloadName,Description,SampleRate,BitsPerSecond,FrameTime,p1, p2, p3, p4, PayloadType,H323type,H323data,CreateEncoder,DestroyEncoder, EncodeMedia,CreateDecoder,DestroyDecoder, DecodeMedia,ControlsTable,Flags,RawFormat,UserData)
| Declare a pair of plug in definition entries for a codec.
#define | PLUGINCODEC_AUDIO_CODEC(MediaFormat,PayloadName,Description,SampleRate,BitsPerSecond,SamplesPerFrame, RecFramesPerPacket, MaxFramesPerPacket, RtpFlags,PayloadType,H323type,H323data,CreateEncoder,DestroyEncoder,EncodeAudio,CreateDecoder,DestroyDecoder,DecodeAudio,ControlsTable)
#define | PLUGINCODEC_ONE_AUDIO_CODEC(MediaFormat,PayloadName,Description,SampleRate,BitsPerSecond,SamplesPerFrame, RecFramesPerPacket, MaxFramesPerPacket, RtpFlags,PayloadType,H323type,H323data)
#define | PLUGINCODEC_VIDEO_CODEC(MediaFormat,PayloadName,Description,BitsPerSecond,MaxWidth,MaxHeight,RtpFlags,PayloadType,H323type,H323data,CreateEncoder,DestroyEncoder,EncodeVideo,CreateDecoder,DestroyDecoder,DecodeVideo,ControlsTable)
#define | PLUGINCODEC_ONE_VIDEO_CODEC(MediaFormat,PayloadName,Description,BitsPerSecond,MaxWidth,MaxHeight,RtpFlags,PayloadType,H323type,H323data)
#define | OpalPluginCodec_Identifer_AMR "0.0.8.245.1.1.1"
#define | OpalPluginCodec_Identifer_AMR_NB "0.0.8.245.1.1.9"
#define | OpalPluginCodec_Identifer_AMR_WB "0.0.8.245.1.1.10"
#define | OpalPluginCodec_Identifer_G7221 "0.0.7.7221.1.0"
#define | OpalPluginCodec_Identifer_G7221ext "0.0.7.7221.1.1.0"
#define | OpalPluginCodec_Identifer_G7222 "0.0.7.7222.1.0"
#define | OpalPluginCodec_Identifer_iLBC "0.0.8.245.1.1.11"
#define | OpalPluginCodec_Identifer_H264_Aligned "0.0.8.241.0.0.0.0"
#define | OpalPluginCodec_Identifer_H264_NonInterleaved "0.0.8.241.0.0.0.1"
#define | OpalPluginCodec_Identifer_H264_Interleaved "0.0.8.241.0.0.0.2"
#define | OpalPluginCodec_Identifer_H264_Generic "0.0.8.241.0.0.1"
#define | OpalPluginCodec_Identifer_MPEG4 "0.0.8.245.1.0.0"
#define | PLUGINCODEC_SQCIF_MPI "SQCIF MPI"
#define | PLUGINCODEC_QCIF_MPI "QCIF MPI"
#define | PLUGINCODEC_CIF_MPI "CIF MPI"
#define | PLUGINCODEC_CIF4_MPI "CIF4 MPI"
#define | PLUGINCODEC_CIF16_MPI "CIF16 MPI"
#define | PLUGINCODEC_CUSTOM_MPI "Custom MPI"
#define | PLUGINCODEC_MPI_DISABLED 33
#define | PLUGINCODEC_MEDIA_PACKETIZATION "Media Packetization"
#define | PLUGINCODEC_MEDIA_PACKETIZATIONS "Media Packetizations"
#define | H261_ANNEX_D "Annex D - Still Image Transmit"
#define | H263_ANNEX_D "Annex D - Unrestricted Motion Vector"
#define | H263_ANNEX_F "Annex F - Advanced Prediction"
#define | H263_ANNEX_I "Annex I - Advanced INTRA Coding"
#define | H263_ANNEX_J "Annex J - Deblocking Filter"
#define | H263_ANNEX_K "Annex K - Slice Structure"
#define | H263_ANNEX_N "Annex N - Reference Picture Selection"
#define | H263_ANNEX_S "Annex S - Alternative INTER VLC"
#define | H263_ANNEX_T "Annex T - Modified Quantization"
#define | __INTERNAL_STRINGIZE__(v) #v
#define | STRINGIZE(v) __INTERNAL_STRINGIZE__(v)
#define | PluginCodec_RTP_MaxPacketSize (1518-14-4-8-20-16)
#define | PluginCodec_RTP_MinHeaderSize (12)
#define | PluginCodec_RTP_MaxPayloadSize (PluginCodec_RTP_MaxPacketSize - PluginCodec_RTP_MinHeaderSize)
#define | PluginCodec_RTP_GetWORD(ptr, off) ((((unsigned char*)(ptr))[off] << 8) | ((unsigned char*)(ptr))[off+1])
#define | PluginCodec_RTP_GetDWORD(ptr, off)
#define | PluginCodec_RTP_SetWORD(ptr, off, val)
#define | PluginCodec_RTP_SetDWORD(ptr, off, val)
#define | PluginCodec_RTP_GetCSRCHdrLength(ptr) ((((unsigned char*)(ptr))[0] & 0x0f)*4 + PluginCodec_RTP_MinHeaderSize)
#define | PluginCodec_RTP_GetExtHdrLength(ptr) ((((unsigned char*)(ptr))[0] & 0x10) ? (PluginCodec_RTP_GetWORD(ptr, PluginCodec_RTP_GetCSRCHdrLength(ptr)+2)*4+4) : 0)
#define | PluginCodec_RTP_GetHeaderLength(ptr) (PluginCodec_RTP_GetCSRCHdrLength(ptr) + PluginCodec_RTP_GetExtHdrLength(ptr))
#define | PluginCodec_RTP_GetPayloadPtr(ptr) ((unsigned char*)(ptr) + PluginCodec_RTP_GetHeaderLength(ptr))
#define | PluginCodec_RTP_GetPayloadType(ptr) (((unsigned char*)(ptr))[1] & 0x7f)
#define | PluginCodec_RTP_SetPayloadType(ptr, type) (((unsigned char*)(ptr))[1] = (unsigned char)((((unsigned char*)(ptr))[1] & 0x80) | (type & 0x7f)))
#define | PluginCodec_RTP_GetMarker(ptr) ((((unsigned char*)(ptr))[1] & 0x80) != 0)
#define | PluginCodec_RTP_SetMarker(ptr, mark) (((unsigned char*)(ptr))[1] = (unsigned char)((((unsigned char*)(ptr))[1] & 0x7f) | (mark != 0 ? 0x80 : 0)))
#define | PluginCodec_RTP_GetTimestamp(ptr) PluginCodec_RTP_GetDWORD(ptr, 4)
#define | PluginCodec_RTP_SetTimestamp(ptr, ts) PluginCodec_RTP_SetDWORD(ptr, 4, ts)
#define | PluginCodec_RTP_GetSequenceNumber(ptr) PluginCodec_RTP_GetWORD(ptr, 2)
#define | PluginCodec_RTP_SetSequenceNumber(ptr, sn) PluginCodec_RTP_SetWORD(ptr, 2, sn)
#define | PluginCodec_RTP_GetSSRC(ptr) PluginCodec_RTP_GetDWORD(ptr, 8)
#define | PluginCodec_RTP_SetSSRC(ptr, ssrc) PluginCodec_RTP_SetDWORD(ptr, 8, ssrc)
#define | PLUGIN_CODEC_IMPLEMENT(name)
#define | PLUGIN_CODEC_IMPLEMENT_ALL(name, table, ver)

## Typedefs

typedef int(*) | PluginCodec_LogFunction (unsigned level, const char *file, unsigned line, const char *section, const char *log)
typedef int(*) | PluginCodec_MergeFunction (char **result, const char *dest, const char *src)
typedef void(*) | PluginCodec_FreeFunction (char *string)
typedef PluginCodec_Definition *(*) | PluginCodec_GetCodecFunction (unsigned int *, unsigned int)
typedef unsigned(*) | PluginCodec_GetAPIVersionFunction ()

## Enumerations

enum | { PluginCodec_License_None = 0, PluginCodec_Licence_None = PluginCodec_License_None, PluginCodec_License_GPL = 1, PluginCodec_License_MPL = 2, PluginCodec_License_Freeware = 3, PluginCodec_License_ResearchAndDevelopmentUseOnly = 4, PluginCodec_License_BSD = 5, PluginCodec_License_LGPL = 6, PluginCodec_License_NoRoyalties = 0x7f, PluginCodec_License_RoyaltiesRequired = 0x80 }

enum

PluginCodec_Flags {
PluginCodec_MediaTypeMask = 0x000f, PluginCodec_MediaTypeAudio = 0x0000, PluginCodec_MediaTypeVideo = 0x0001, PluginCodec_MediaTypeAudioStreamed = 0x0002,
PluginCodec_MediaTypeFax = 0x0003, PluginCodec_InputTypeMask = 0x0010, PluginCodec_InputTypeRaw = 0x0000, PluginCodec_InputTypeRTP = 0x0010,
PluginCodec_OutputTypeMask = 0x0020, PluginCodec_OutputTypeRaw = 0x0000, PluginCodec_OutputTypeRTP = 0x0020, PluginCodec_RTPTypeMask = 0x0040,
PluginCodec_RTPTypeDynamic = 0x0000, PluginCodec_RTPTypeExplicit = 0x0040, PluginCodec_RTPSharedMask = 0x0080, PluginCodec_RTPTypeNotShared = 0x0000,
PluginCodec_RTPTypeShared = 0x0080, PluginCodec_DecodeSilenceMask = 0x0100, PluginCodec_NoDecodeSilence = 0x0000, PluginCodec_DecodeSilence = 0x0100,
PluginCodec_EncodeSilenceMask = 0x0200, PluginCodec_NoEncodeSilence = 0x0000, PluginCodec_EncodeSilence = 0x0200, PluginCodec_MediaExtensionMask = 0x0400,
PluginCodec_MediaTypeExtVideo = 0x0400, PluginCodec_ComfortNoiseMask = 0x0800, PluginCodec_ComfortNoise = 0x0800, PluginCodec_ErrorConcealmentMask = 0x0800,
PluginCodec_ErrorConcealment = 0x0800, PluginCodec_EmptyPayloadMask = 0x1000, PluginCodec_EmptyPayload = 0x1000, PluginCodec_OtherPayloadMask = 0x2000,
PluginCodec_OtherPayload = 0x2000, PluginCodec_BitsPerSamplePos = 12, PluginCodec_BitsPerSampleMask = 0xf000, PluginCodec_ChannelsPos = 16,
PluginCodec_ChannelsMask = 0x003f0000
}

enum | PluginCodec_CoderFlags { PluginCodec_CoderSilenceFrame = 1, PluginCodec_CoderForceIFrame = 2, PluginCodec_CoderPacketLoss = 4 }
enum | PluginCodec_ReturnCoderFlags { PluginCodec_ReturnCoderLastFrame = 1, PluginCodec_ReturnCoderIFrame = 2, PluginCodec_ReturnCoderRequestIFrame = 4, PluginCodec_ReturnCoderBufferTooSmall = 8 }
enum | PluginCodec_OptionTypes { PluginCodec_StringOption, PluginCodec_BoolOption, PluginCodec_IntegerOption, PluginCodec_RealOption, PluginCodec_EnumOption, PluginCodec_OctetsOption, PluginCodec_NumOptionTypes }
enum | PluginCodec_OptionMerge { PluginCodec_NoMerge, PluginCodec_MinMerge, PluginCodec_MaxMerge, PluginCodec_EqualMerge, PluginCodec_NotEqualMerge, PluginCodec_AlwaysMerge, PluginCodec_CustomMerge, PluginCodec_IntersectionMerge, PluginCodec_AndMerge = PluginCodec_MinMerge, PluginCodec_OrMerge = PluginCodec_MaxMerge }

enum

{
PluginCodec_H323Codec_undefined, PluginCodec_H323Codec_programmed, PluginCodec_H323Codec_nonStandard, PluginCodec_H323Codec_generic,
PluginCodec_H323AudioCodec_g711Alaw_64k, PluginCodec_H323AudioCodec_g711Alaw_56k, PluginCodec_H323AudioCodec_g711Ulaw_64k, PluginCodec_H323AudioCodec_g711Ulaw_56k,
PluginCodec_H323AudioCodec_g722_64k, PluginCodec_H323AudioCodec_g722_56k, PluginCodec_H323AudioCodec_g722_48k, PluginCodec_H323AudioCodec_g7231,
PluginCodec_H323AudioCodec_g728, PluginCodec_H323AudioCodec_g729, PluginCodec_H323AudioCodec_g729AnnexA, PluginCodec_H323AudioCodec_is11172,
PluginCodec_H323AudioCodec_is13818Audio, PluginCodec_H323AudioCodec_g729wAnnexB, PluginCodec_H323AudioCodec_g729AnnexAwAnnexB, PluginCodec_H323AudioCodec_g7231AnnexC,
PluginCodec_H323AudioCodec_gsmFullRate, PluginCodec_H323AudioCodec_gsmHalfRate, PluginCodec_H323AudioCodec_gsmEnhancedFullRate, PluginCodec_H323AudioCodec_g729Extensions,
PluginCodec_H323VideoCodec_h261, PluginCodec_H323VideoCodec_h262, PluginCodec_H323VideoCodec_h263, PluginCodec_H323VideoCodec_is11172,
PluginCodec_H323VideoCodec_Extended, PluginCodec_H323T38Codec, PluginCodec_H323Codec_NoH323 = 0xff
}

## Define Documentation

#define __INTERNAL_STRINGIZE__ | ( | v |  | ) | #v

#define __TIMESTAMP__ "0"

#define _CRT_NONSTDC_NO_DEPRECATE 1

#define _CRT_SECURE_NO_WARNINGS 1

#define H261_ANNEX_D "Annex D - Still Image Transmit"

#define H263_ANNEX_D "Annex D - Unrestricted Motion Vector"

#define H263_ANNEX_F "Annex F - Advanced Prediction"

#define H263_ANNEX_I "Annex I - Advanced INTRA Coding"

#define H263_ANNEX_J "Annex J - Deblocking Filter"

#define H263_ANNEX_K "Annex K - Slice Structure"

#define H263_ANNEX_N "Annex N - Reference Picture Selection"

#define H263_ANNEX_S "Annex S - Alternative INTER VLC"

#define H263_ANNEX_T "Annex T - Modified Quantization"

#define OpalPluginCodec_Identifer_AMR "0.0.8.245.1.1.1"

#define OpalPluginCodec_Identifer_AMR_NB "0.0.8.245.1.1.9"

#define OpalPluginCodec_Identifer_AMR_WB "0.0.8.245.1.1.10"

#define OpalPluginCodec_Identifer_G7221 "0.0.7.7221.1.0"

#define OpalPluginCodec_Identifer_G7221ext "0.0.7.7221.1.1.0"

#define OpalPluginCodec_Identifer_G7222 "0.0.7.7222.1.0"

#define OpalPluginCodec_Identifer_H264_Aligned "0.0.8.241.0.0.0.0"

#define OpalPluginCodec_Identifer_H264_Generic "0.0.8.241.0.0.1"

#define OpalPluginCodec_Identifer_H264_Interleaved "0.0.8.241.0.0.0.2"

#define OpalPluginCodec_Identifer_H264_NonInterleaved "0.0.8.241.0.0.0.1"

#define OpalPluginCodec_Identifer_iLBC "0.0.8.245.1.1.11"

#define OpalPluginCodec_Identifer_MPEG4 "0.0.8.245.1.0.0"

#define PLUGIN_CODEC_API_VER_FN PWLibPlugin_GetAPIVersion

#define PLUGIN_CODEC_API_VER_FN_DECLARE

Value:

    PLUGIN_CODEC_DLL_API unsigned int PLUGIN_CODEC_API_VER_FN() \
    { return PWLIB_PLUGIN_API_VERSION; }

#define PLUGIN_CODEC_API_VER_FN_STR "PWLibPlugin_GetAPIVersion"

#define PLUGIN_CODEC_DLL_API

#define PLUGIN_CODEC_GET_CODEC_FN OpalCodecPlugin_GetCodecs

#define PLUGIN_CODEC_GET_CODEC_FN_STR "OpalCodecPlugin_GetCodecs"

#define PLUGIN_CODEC_IMPLEMENT | ( | name |  | ) |

Value:

    PLUGIN_CODEC_DLL_API unsigned int PLUGIN_CODEC_API_VER_FN() \
    { return PWLIB_PLUGIN_API_VERSION; } \

#define PLUGIN_CODEC_IMPLEMENT_ALL | ( | name,
|  | table,
|  | ver |  | ) |

Value:

    PLUGIN_CODEC_IMPLEMENT(name) \
    PLUGIN_CODEC_DLL_API const struct PluginCodec_Definition * PLUGIN_CODEC_GET_CODEC_FN(unsigned * count, unsigned version) \
    { *count = sizeof(table)/sizeof(struct PluginCodec_Definition); return version < ver ? NULL : table; }

#define PLUGIN_CODEC_VERSION PLUGIN_CODEC_VERSION_H245_DEF_GEN_PARAM

#define PLUGIN_CODEC_VERSION_FAX 4

#define PLUGIN_CODEC_VERSION_FIRST 1

#define PLUGIN_CODEC_VERSION_H245_DEF_GEN_PARAM 7

#define PLUGIN_CODEC_VERSION_INTERSECT 6

#define PLUGIN_CODEC_VERSION_OPTIONS 5

#define PLUGIN_CODEC_VERSION_VIDEO 3

#define PLUGIN_CODEC_VERSION_WIDEBAND 2

#define PLUGINCODEC_AUDIO_CODEC | ( | MediaFormat,
|  | PayloadName,
|  | Description,
|  | SampleRate,
|  | BitsPerSecond,
|  | SamplesPerFrame,
|  | RecFramesPerPacket,
|  | MaxFramesPerPacket,
|  | RtpFlags,
|  | PayloadType,
|  | H323type,
|  | H323data,
|  | CreateEncoder,
|  | DestroyEncoder,
|  | EncodeAudio,
|  | CreateDecoder,
|  | DestroyDecoder,
|  | DecodeAudio,
|  | ControlsTable |  | ) |

Value:

    PLUGINCODEC_CODEC_PAIR(MediaFormat, \
                                    PayloadName, \
                                    Description, \
                                    SampleRate, \
                                    BitsPerSecond, \
                                    (SamplesPerFrame)*1000000/(SampleRate), \
                                    SamplesPerFrame, \
                                    (BitsPerSecond)*(SampleRate)/(SamplesPerFrame)/8, \
                                    RecFramesPerPacket, \
                                    MaxFramesPerPacket, \
                                    PayloadType, \
                                    H323type, \
                                    H323data, \
                                    CreateEncoder, \
                                    DestroyEncoder, \
                                    EncodeAudio, \
                                    CreateDecoder, \
                                    DestroyDecoder, \
                                    DecodeAudio, \
                                    ControlsTable, \
                                    PluginCodec_MediaTypeAudio | /* audio codec */ \
                                    PluginCodec_InputTypeRaw |   /* raw input data */ \
                                    PluginCodec_OutputTypeRaw |  /* raw output data */ \
                                    (RtpFlags), \
                                    PLUGINCODEC_RAW_AUDIO, \
                                    NULL)

#define PLUGINCODEC_CIF16_HEIGHT (PLUGINCODEC_CIF_HEIGHT*4)

#define PLUGINCODEC_CIF16_MPI "CIF16 MPI"

#define PLUGINCODEC_CIF16_WIDTH (PLUGINCODEC_CIF_WIDTH*4)

#define PLUGINCODEC_CIF4_HEIGHT (PLUGINCODEC_CIF_HEIGHT*2)

#define PLUGINCODEC_CIF4_MPI "CIF4 MPI"

#define PLUGINCODEC_CIF4_WIDTH (PLUGINCODEC_CIF_WIDTH*2)

#define PLUGINCODEC_CIF_HEIGHT 288

#define PLUGINCODEC_CIF_MPI "CIF MPI"

#define PLUGINCODEC_CIF_WIDTH 352

#define PLUGINCODEC_CODEC_PAIR | ( | MediaFormat,
|  | PayloadName,
|  | Description,
|  | SampleRate,
|  | BitsPerSecond,
|  | FrameTime,
|  | p1,
|  | p2,
|  | p3,
|  | p4,
|  | PayloadType,
|  | H323type,
|  | H323data,
|  | CreateEncoder,
|  | DestroyEncoder,
|  | EncodeMedia,
|  | CreateDecoder,
|  | DestroyDecoder,
|  | DecodeMedia,
|  | ControlsTable,
|  | Flags,
|  | RawFormat,
|  | UserData |  | ) |

Value:

    { \
        PLUGIN_CODEC_VERSION, &MyLicenseInfo, Flags, Description, RawFormat, MediaFormat, UserData, \
        SampleRate, BitsPerSecond, FrameTime, {{ p1,p2,p3,p4 }}, PayloadType, PayloadName, \
        CreateEncoder, DestroyEncoder, EncodeMedia, ControlsTable, H323type, H323data \
      }, \
      { \
        PLUGIN_CODEC_VERSION, &MyLicenseInfo, Flags, Description, MediaFormat, RawFormat, UserData, \
        SampleRate, BitsPerSecond, FrameTime, {{ p1,p2,p3,p4 }}, PayloadType, PayloadName, \
        CreateDecoder, DestroyDecoder, DecodeMedia, ControlsTable, H323type, H323data \
      }

Declare a pair of plug in definition entries for a codec.

< User Data Media Format IANA RTP payload code Description text Sample rate Maximum bits per second Samples per audio frame Recommended frames per packet Maximum frames per packet Extra flags typically if RTP payload type is fixed IANA RTP payload type code h323CapabilityType enumeration Data to go with h323CapabilityType Create encoder function Destroy encoder function Encode media function Create decoder function Destroy decoder function Decode media function Codec controls tables Media Format IANA RTP payload code Description text Sample rate Maximum bits per second Samples per audio frame Recommended frames per packet Maximum frames per packet Extra flags typically if RTP payload type is fixed IANA RTP payload type code h323CapabilityType enumeration Data to go with h323CapabilityType Media Format IANA RTP payload code Description text Maximum bits per second Max resolution (width) Max resolution (height) Extra flags typically if RTP payload type is fixed IANA RTP payload type code h323CapabilityType enumeration Data to go with h323CapabilityType Create encoder function Destroy encoder function Encode media function Create decoder function Destroy decoder function Decode media function Codec controls tables Media Format IANA RTP payload code Description text Maximum bits per second Max resolution (width) Max resolution (height) Extra flags typically if RTP payload type is fixed IANA RTP payload type code h323CapabilityType enumeration Data to go with h323CapabilityType

#define PLUGINCODEC_CONTROL_FREE_CODEC_OPTIONS "free_codec_options"

#define PLUGINCODEC_CONTROL_GET_ACTIVE_OPTIONS "get_active_options"

#define PLUGINCODEC_CONTROL_GET_CODEC_OPTIONS "get_codec_options"

#define PLUGINCODEC_CONTROL_GET_OUTPUT_DATA_SIZE "get_output_data_size"

#define PLUGINCODEC_CONTROL_GET_STATISTICS "get_statistics"

#define PLUGINCODEC_CONTROL_SET_CODEC_OPTIONS "set_codec_options"

#define PLUGINCODEC_CONTROL_SET_INSTANCE_ID "set_instance_id"

#define PLUGINCODEC_CONTROL_SET_LOG_FUNCTION "set_log_function"

#define PLUGINCODEC_CONTROL_TERMINATE_CODEC "terminate_codec"

#define PLUGINCODEC_CONTROL_TO_CUSTOMISED_OPTIONS "to_customised_options"

#define PLUGINCODEC_CONTROL_TO_NORMALISED_OPTIONS "to_normalised_options"

#define PLUGINCODEC_CONTROL_VALID_FOR_PROTOCOL "valid_for_protocol"

#define PLUGINCODEC_CUSTOM_MPI "Custom MPI"

#define PluginCodec_H245_BooleanArray 0x08000000

#define PluginCodec_H245_Collapsing 0x40000000

#define PluginCodec_H245_NonCollapsing 0x20000000

#define PluginCodec_H245_OLC 0x02000000

#define PluginCodec_H245_OrdinalMask 0x0000ffff

#define PluginCodec_H245_PositionMask 0x00ff0000

#define PluginCodec_H245_PositionShift 16

#define PluginCodec_H245_ReqMode 0x01000000

#define PluginCodec_H245_TCS 0x04000000

#define PluginCodec_H245_Unsigned32 0x10000000

#define PLUGINCODEC_LICENSE | ( | p1,
|  | p2,
|  | p3,
|  | p4,
|  | p5,
|  | p6,
|  | p7,
|  | p8,
|  | p9,
|  | p10,
|  | p11,
|  | p12,
|  | p13,
|  | p14,
|  | p15 |  | ) | static struct PluginCodec_information MyLicenseInfo = { 0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,__TIMESTAMP__ }

#define PLUGINCODEC_MAX_FRAME_RATE 30

#define PLUGINCODEC_MEDIA_PACKETIZATION "Media Packetization"

#define PLUGINCODEC_MEDIA_PACKETIZATIONS "Media Packetizations"

#define PLUGINCODEC_MPI_DISABLED 33

#define PLUGINCODEC_ONE_AUDIO_CODEC | ( | MediaFormat,
|  | PayloadName,
|  | Description,
|  | SampleRate,
|  | BitsPerSecond,
|  | SamplesPerFrame,
|  | RecFramesPerPacket,
|  | MaxFramesPerPacket,
|  | RtpFlags,
|  | PayloadType,
|  | H323type,
|  | H323data |  | ) |

Value:

    static struct PluginCodec_Definition CodecDefinitionTable[] = { \
                PLUGINCODEC_AUDIO_CODEC(MediaFormat, \
                                        PayloadName, \
                                        Description, \
                                        SampleRate, \
                                        BitsPerSecond, \
                                        SamplesPerFrame, \
                                        RecFramesPerPacket, \
                                        MaxFramesPerPacket, \
                                        RtpFlags, \
                                        PayloadType, \
                                        H323type, \
                                        H323data, \
                                        MyCreateEncoder, \
                                        MyDestroyEncoder, \
                                        MyEncodeAudio, \
                                        MyCreateDecoder, \
                                        MyDestroyDecoder, \
                                        MyDecodeAudio, \
                                        MyControlsTable \
                                        ) \
        }

#define PLUGINCODEC_ONE_VIDEO_CODEC | ( | MediaFormat,
|  | PayloadName,
|  | Description,
|  | BitsPerSecond,
|  | MaxWidth,
|  | MaxHeight,
|  | RtpFlags,
|  | PayloadType,
|  | H323type,
|  | H323data |  | ) |

Value:

    static struct PluginCodec_Definition CodecDefinitionTable[] = { \
                PLUGINCODEC_VIDEO_CODEC(MediaFormat, \
                                        PayloadName, \
                                        Description, \
                                        BitsPerSecond, \
                                        MaxWidth, \
                                        MaxHeight, \
                                        RtpFlags, \
                                        PayloadType, \
                                        H323type, \
                                        H323data, \
                                        CreateEncoder, \
                                        DestroyEncoder, \
                                        EncodeAudio, \
                                        CreateDecoder, \
                                        DestroyDecoder, \
                                        DecodeAudio, \
                                        ControlsTable \
                                        ) \
        }

#define PLUGINCODEC_OPTION_CHANNELS "Channels"

#define PLUGINCODEC_OPTION_CLOCK_RATE "Clock Rate"

#define PLUGINCODEC_OPTION_FRAME_HEIGHT "Frame Height"

#define PLUGINCODEC_OPTION_FRAME_TIME "Frame Time"

#define PLUGINCODEC_OPTION_FRAME_WIDTH "Frame Width"

#define PLUGINCODEC_OPTION_MAX_BIT_RATE "Max Bit Rate"

#define PLUGINCODEC_OPTION_MAX_FRAME_SIZE "Max Frame Size"

#define PLUGINCODEC_OPTION_MAX_RX_FRAME_HEIGHT "Max Rx Frame Height"

#define PLUGINCODEC_OPTION_MAX_RX_FRAME_WIDTH "Max Rx Frame Width"

#define PLUGINCODEC_OPTION_MAX_TX_PACKET_SIZE "Max Tx Packet Size"

#define PLUGINCODEC_OPTION_MIN_RX_FRAME_HEIGHT "Min Rx Frame Height"

#define PLUGINCODEC_OPTION_MIN_RX_FRAME_WIDTH "Min Rx Frame Width"

#define PLUGINCODEC_OPTION_NEEDS_JITTER "Needs Jitter"

#define PLUGINCODEC_OPTION_PROTOCOL "Protocol"

#define PLUGINCODEC_OPTION_PROTOCOL_H323 "H.323"

#define PLUGINCODEC_OPTION_PROTOCOL_SIP "SIP"

#define PLUGINCODEC_OPTION_RATE_CONTROL_PERIOD "Rate Control Period"

#define PLUGINCODEC_OPTION_RX_FRAMES_PER_PACKET "Rx Frames Per Packet"

#define PLUGINCODEC_OPTION_TARGET_BIT_RATE "Target Bit Rate"

#define PLUGINCODEC_OPTION_TEMPORAL_SPATIAL_TRADE_OFF "Temporal Spatial Trade Off"

#define PLUGINCODEC_OPTION_TX_FRAMES_PER_PACKET "Tx Frames Per Packet"

#define PLUGINCODEC_OPTION_TX_KEY_FRAME_PERIOD "Tx Key Frame Period"

#define PLUGINCODEC_QCIF4_HEIGHT (PLUGINCODEC_CIF4_HEIGHT/2)

#define PLUGINCODEC_QCIF4_WIDTH (PLUGINCODEC_CIF4_WIDTH/2)

#define PLUGINCODEC_QCIF_HEIGHT (PLUGINCODEC_CIF_HEIGHT/2)

#define PLUGINCODEC_QCIF_MPI "QCIF MPI"

#define PLUGINCODEC_QCIF_WIDTH (PLUGINCODEC_CIF_WIDTH/2)

#define PLUGINCODEC_RAW_AUDIO "L16"

#define PLUGINCODEC_RAW_VIDEO "YUV420P"

#define PluginCodec_RTP_GetCSRCHdrLength | ( | ptr |  | ) | ((((unsigned char*)(ptr))[0] & 0x0f)*4 + PluginCodec_RTP_MinHeaderSize)

#define PluginCodec_RTP_GetDWORD | ( | ptr,
|  | off |  | ) |

Value:

    ((((unsigned char*)(ptr))[off  ] << 24)|\
                                                     (((unsigned char*)(ptr))[off+1] << 16)|\
                                                     (((unsigned char*)(ptr))[off+2] << 8 )|\
                                                      ((unsigned char*)(ptr))[off+3])

#define PluginCodec_RTP_GetExtHdrLength | ( | ptr |  | ) | ((((unsigned char*)(ptr))[0] & 0x10) ? (PluginCodec_RTP_GetWORD(ptr, PluginCodec_RTP_GetCSRCHdrLength(ptr)+2)*4+4) : 0)

#define PluginCodec_RTP_GetHeaderLength | ( | ptr |  | ) | (PluginCodec_RTP_GetCSRCHdrLength(ptr) + PluginCodec_RTP_GetExtHdrLength(ptr))

#define PluginCodec_RTP_GetMarker | ( | ptr |  | ) | ((((unsigned char*)(ptr))[1] & 0x80) != 0)

#define PluginCodec_RTP_GetPayloadPtr | ( | ptr |  | ) | ((unsigned char*)(ptr) + PluginCodec_RTP_GetHeaderLength(ptr))

#define PluginCodec_RTP_GetPayloadType | ( | ptr |  | ) | (((unsigned char*)(ptr))[1] & 0x7f)

#define PluginCodec_RTP_GetSequenceNumber | ( | ptr |  | ) | PluginCodec_RTP_GetWORD(ptr, 2)

#define PluginCodec_RTP_GetSSRC | ( | ptr |  | ) | PluginCodec_RTP_GetDWORD(ptr, 8)

#define PluginCodec_RTP_GetTimestamp | ( | ptr |  | ) | PluginCodec_RTP_GetDWORD(ptr, 4)

#define PluginCodec_RTP_GetWORD | ( | ptr,
|  | off |  | ) | ((((unsigned char*)(ptr))[off] << 8) | ((unsigned char*)(ptr))[off+1])

#define PluginCodec_RTP_MaxPacketSize (1518-14-4-8-20-16)

#define PluginCodec_RTP_MaxPayloadSize (PluginCodec_RTP_MaxPacketSize - PluginCodec_RTP_MinHeaderSize)

#define PluginCodec_RTP_MinHeaderSize (12)

#define PluginCodec_RTP_SetDWORD | ( | ptr,
|  | off,
|  | val |  | ) |

Value:

    ((((unsigned char*)(ptr))[off  ] = (unsigned char)((val) >> 24)),\
                                                     (((unsigned char*)(ptr))[off+1] = (unsigned char)((val) >> 16)),\
                                                     (((unsigned char*)(ptr))[off+2] = (unsigned char)((val) >> 8 )),\
                                                     (((unsigned char*)(ptr))[off+3] = (unsigned char) (val)      ))

#define PluginCodec_RTP_SetMarker | ( | ptr,
|  | mark |  | ) | (((unsigned char*)(ptr))[1] = (unsigned char)((((unsigned char*)(ptr))[1] & 0x7f) | (mark != 0 ? 0x80 : 0)))

#define PluginCodec_RTP_SetPayloadType | ( | ptr,
|  | type |  | ) | (((unsigned char*)(ptr))[1] = (unsigned char)((((unsigned char*)(ptr))[1] & 0x80) | (type & 0x7f)))

#define PluginCodec_RTP_SetSequenceNumber | ( | ptr,
|  | sn |  | ) | PluginCodec_RTP_SetWORD(ptr, 2, sn)

#define PluginCodec_RTP_SetSSRC | ( | ptr,
|  | ssrc |  | ) | PluginCodec_RTP_SetDWORD(ptr, 8, ssrc)

#define PluginCodec_RTP_SetTimestamp | ( | ptr,
|  | ts |  | ) | PluginCodec_RTP_SetDWORD(ptr, 4, ts)

#define PluginCodec_RTP_SetWORD | ( | ptr,
|  | off,
|  | val |  | ) |

Value:

    ((((unsigned char*)(ptr))[off  ] = (unsigned char)((val) >> 8 )),\
                                                     (((unsigned char*)(ptr))[off+1] = (unsigned char) (val)      ))

#define PluginCodec_SetChannels | ( | n |  | ) | (((n-1)<<PluginCodec_ChannelsPos)&PluginCodec_ChannelsMask)

#define PLUGINCODEC_SQCIF_HEIGHT 96

#define PLUGINCODEC_SQCIF_MPI "SQCIF MPI"

#define PLUGINCODEC_SQCIF_WIDTH 128

#define PLUGINCODEC_VIDEO_CLOCK 90000

#define PLUGINCODEC_VIDEO_CODEC | ( | MediaFormat,
|  | PayloadName,
|  | Description,
|  | BitsPerSecond,
|  | MaxWidth,
|  | MaxHeight,
|  | RtpFlags,
|  | PayloadType,
|  | H323type,
|  | H323data,
|  | CreateEncoder,
|  | DestroyEncoder,
|  | EncodeVideo,
|  | CreateDecoder,
|  | DestroyDecoder,
|  | DecodeVideo,
|  | ControlsTable |  | ) |

Value:

    PLUGINCODEC_CODEC_PAIR(MediaFormat, \
                                    PayloadName, \
                                    Description, \
                                    SampleRate, \
                                    BitsPerSecond, \
                                    PLUGINCODEC_VIDEO_CLOCK, \
                                    BitsPerSecond, \
                                    1000000/PLUGINCODEC_MAX_FRAME_RATE, \
                                    MaxWidth, \
                                    MaxHeight, \
                                    0,PLUGINCODEC_MAX_FRAME_RATE, \
                                    PayloadType, \
                                    H323type, \
                                    H323data, \
                                    CreateEncoder, \
                                    DestroyEncoder, \
                                    EncodeVideo, \
                                    CreateDecoder, \
                                    DestroyDecoder, \
                                    DecodeVideo, \
                                    ControlsTable, \
                                    PluginCodec_MediaTypeVideo | /* video codec */ \
                                    PluginCodec_InputTypeRTP |   /* RTP input data */ \
                                    PluginCodec_OutputTypeRTP |  /* RTP output data */ \
                                    (RtpFlags), \
                                    PLUGINCODEC_RAW_VIDEO, \
                                    NULL)

#define PWLIB_PLUGIN_API_VERSION 1

#define STRINGIZE | ( | v |  | ) | __INTERNAL_STRINGIZE__(v)

## Typedef Documentation

typedef void(*) PluginCodec_FreeFunction(char *string)

typedef unsigned(* ) PluginCodec_GetAPIVersionFunction()

typedef struct PluginCodec_Definition*(* ) PluginCodec_GetCodecFunction(unsigned int *, unsigned int)

typedef int(*) PluginCodec_LogFunction(unsigned level, const char *file, unsigned line, const char *section, const char *log)

typedef int(*) PluginCodec_MergeFunction(char **result, const char *dest, const char *src)

## Enumeration Type Documentation

anonymous enum

Enumerator:

  PluginCodec_License_None |
  PluginCodec_Licence_None |
  PluginCodec_License_GPL |
  PluginCodec_License_MPL |
  PluginCodec_License_Freeware |
  PluginCodec_License_ResearchAndDevelopmentUseOnly |
  PluginCodec_License_BSD |
  PluginCodec_License_LGPL |
  PluginCodec_License_NoRoyalties |
  PluginCodec_License_RoyaltiesRequired |

anonymous enum

Enumerator:

  PluginCodec_H323Codec_undefined |
  PluginCodec_H323Codec_programmed |
  PluginCodec_H323Codec_nonStandard |
  PluginCodec_H323Codec_generic |
  PluginCodec_H323AudioCodec_g711Alaw_64k |
  PluginCodec_H323AudioCodec_g711Alaw_56k |
  PluginCodec_H323AudioCodec_g711Ulaw_64k |
  PluginCodec_H323AudioCodec_g711Ulaw_56k |
  PluginCodec_H323AudioCodec_g722_64k |
  PluginCodec_H323AudioCodec_g722_56k |
  PluginCodec_H323AudioCodec_g722_48k |
  PluginCodec_H323AudioCodec_g7231 |
  PluginCodec_H323AudioCodec_g728 |
  PluginCodec_H323AudioCodec_g729 |
  PluginCodec_H323AudioCodec_g729AnnexA |
  PluginCodec_H323AudioCodec_is11172 |
  PluginCodec_H323AudioCodec_is13818Audio |
  PluginCodec_H323AudioCodec_g729wAnnexB |
  PluginCodec_H323AudioCodec_g729AnnexAwAnnexB |
  PluginCodec_H323AudioCodec_g7231AnnexC |
  PluginCodec_H323AudioCodec_gsmFullRate |
  PluginCodec_H323AudioCodec_gsmHalfRate |
  PluginCodec_H323AudioCodec_gsmEnhancedFullRate |
  PluginCodec_H323AudioCodec_g729Extensions |
  PluginCodec_H323VideoCodec_h261 |
  PluginCodec_H323VideoCodec_h262 |
  PluginCodec_H323VideoCodec_h263 |
  PluginCodec_H323VideoCodec_is11172 |
  PluginCodec_H323VideoCodec_Extended |
  PluginCodec_H323T38Codec |
  PluginCodec_H323Codec_NoH323 |

enum PluginCodec_CoderFlags

Enumerator:

  PluginCodec_CoderSilenceFrame |
  PluginCodec_CoderForceIFrame |
  PluginCodec_CoderPacketLoss |

enum PluginCodec_Flags

Enumerator:

  PluginCodec_MediaTypeMask |
  PluginCodec_MediaTypeAudio |
  PluginCodec_MediaTypeVideo |
  PluginCodec_MediaTypeAudioStreamed |
  PluginCodec_MediaTypeFax |
  PluginCodec_InputTypeMask |
  PluginCodec_InputTypeRaw |
  PluginCodec_InputTypeRTP |
  PluginCodec_OutputTypeMask |
  PluginCodec_OutputTypeRaw |
  PluginCodec_OutputTypeRTP |
  PluginCodec_RTPTypeMask |
  PluginCodec_RTPTypeDynamic |
  PluginCodec_RTPTypeExplicit |
  PluginCodec_RTPSharedMask |
  PluginCodec_RTPTypeNotShared |
  PluginCodec_RTPTypeShared |
  PluginCodec_DecodeSilenceMask |
  PluginCodec_NoDecodeSilence |
  PluginCodec_DecodeSilence |
  PluginCodec_EncodeSilenceMask |
  PluginCodec_NoEncodeSilence |
  PluginCodec_EncodeSilence |
  PluginCodec_MediaExtensionMask |
  PluginCodec_MediaTypeExtVideo |
  PluginCodec_ComfortNoiseMask |
  PluginCodec_ComfortNoise |
  PluginCodec_ErrorConcealmentMask |
  PluginCodec_ErrorConcealment |
  PluginCodec_EmptyPayloadMask |
  PluginCodec_EmptyPayload |
  PluginCodec_OtherPayloadMask |
  PluginCodec_OtherPayload |
  PluginCodec_BitsPerSamplePos |
  PluginCodec_BitsPerSampleMask |
  PluginCodec_ChannelsPos |
  PluginCodec_ChannelsMask |

enum PluginCodec_OptionMerge

Enumerator:

  PluginCodec_NoMerge |
  PluginCodec_MinMerge |
  PluginCodec_MaxMerge |
  PluginCodec_EqualMerge |
  PluginCodec_NotEqualMerge |
  PluginCodec_AlwaysMerge |
  PluginCodec_CustomMerge |
  PluginCodec_IntersectionMerge |
  PluginCodec_AndMerge |
  PluginCodec_OrMerge |

enum PluginCodec_OptionTypes

Enumerator:

  PluginCodec_StringOption |
  PluginCodec_BoolOption |
  PluginCodec_IntegerOption |
  PluginCodec_RealOption |
  PluginCodec_EnumOption |
  PluginCodec_OctetsOption |
  PluginCodec_NumOptionTypes |

enum PluginCodec_ReturnCoderFlags

Enumerator:

  PluginCodec_ReturnCoderLastFrame |
  PluginCodec_ReturnCoderIFrame |
  PluginCodec_ReturnCoderRequestIFrame |
  PluginCodec_ReturnCoderBufferTooSmall |