1374 lines
45 KiB
C++
1374 lines
45 KiB
C++
|
|
/* Copyright (C) Microsoft Corporation 1999, All rights reserved. */
|
|
|
|
#ifndef __H245FMT_H__
|
|
#define __H245FMT_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
|
|
This file defines the structural interface that exists between
|
|
installable H.245-compatible filter components and core TAPI MSP
|
|
components.
|
|
|
|
*/
|
|
|
|
|
|
// FORMAT_H245VERSION indicates the version number of H.245 that
|
|
// was in effect at the time the module was compiled. Core MSP
|
|
// maintain backward compatibility with modules compiled using this
|
|
// header file.
|
|
#define FORMAT_H245VERSION 3
|
|
|
|
/*
|
|
The following data types are defined here to be consistent with
|
|
the ASN.1 library that is/was used to build TAPI core components.
|
|
If the ASN core files are also to be included, they must be included
|
|
before including this file.
|
|
*/
|
|
|
|
#ifndef __MS_ASN1_H__ // avoid duplicate definitions when msasn1.h is included
|
|
#define __MS_ASN1_H__
|
|
|
|
/* ------ Basic integer types ------ */
|
|
|
|
typedef unsigned char ASN1uint8_t;
|
|
typedef signed char ASN1int8_t;
|
|
|
|
typedef unsigned short ASN1uint16_t;
|
|
typedef signed short ASN1int16_t;
|
|
|
|
typedef unsigned long ASN1uint32_t;
|
|
typedef signed long ASN1int32_t;
|
|
|
|
typedef ASN1int32_t ASN1enum_t; // enumerated type
|
|
typedef ASN1uint16_t ASN1choice_t; // choice
|
|
|
|
|
|
/* ------ Basic ASN.1 types ------ */
|
|
|
|
typedef ASN1uint8_t ASN1octet_t;
|
|
typedef ASN1uint8_t ASN1bool_t;
|
|
|
|
typedef struct ASN1objectidentifier_s
|
|
{
|
|
struct ASN1objectidentifier_s *next;
|
|
ASN1uint32_t value;
|
|
}*ASN1objectidentifier_t;
|
|
|
|
typedef struct tagASN1octetstring_t
|
|
{
|
|
ASN1uint32_t length;
|
|
ASN1octet_t *value;
|
|
}ASN1octetstring_t;
|
|
|
|
#endif __MS_ASN1_H__
|
|
|
|
#ifndef _H245ASN_Module_H_ // avoid duplicate definitions when h245asn.h is included
|
|
#define _H245ASN_Module_H_
|
|
|
|
|
|
/* ------ H.245 audio and video structures ------ */
|
|
|
|
typedef ASN1uint16_t CustomPictureFormat_pixelAspectInformation_pixelAspectCode_Set;
|
|
typedef ASN1uint16_t RTPH263VideoRedundancyEncoding_containedThreads_Seq;
|
|
typedef ASN1uint16_t RTPH263VideoRedundancyFrameMapping_frameSequence_Seq;
|
|
|
|
typedef struct RedundancyEncodingCapability_secondaryEncoding * PRedundancyEncodingCapability_secondaryEncoding;
|
|
typedef struct RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom * PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom;
|
|
typedef struct H263Options_customPictureFormat * PH263Options_customPictureFormat;
|
|
typedef struct H263Options_customPictureClockFrequency * PH263Options_customPictureClockFrequency;
|
|
typedef struct H263Options_modeCombos * PH263Options_modeCombos;
|
|
typedef struct EnhancementLayerInfo_bPictureEnhancement * PEnhancementLayerInfo_bPictureEnhancement;
|
|
typedef struct EnhancementLayerInfo_spatialEnhancement * PEnhancementLayerInfo_spatialEnhancement;
|
|
typedef struct EnhancementLayerInfo_snrEnhancement * PEnhancementLayerInfo_snrEnhancement;
|
|
typedef struct H2250Capability_redundancyEncodingCapability * PH2250Capability_redundancyEncodingCapability;
|
|
typedef struct EncryptionCapability * PEncryptionCapability;
|
|
|
|
|
|
typedef ASN1uint16_t CapabilityTableEntryNumber;
|
|
|
|
|
|
typedef struct NonStandardIdentifier_h221NonStandard {
|
|
ASN1uint16_t t35CountryCode;
|
|
ASN1uint16_t t35Extension;
|
|
ASN1uint16_t manufacturerCode;
|
|
} NonStandardIdentifier_h221NonStandard;
|
|
|
|
typedef struct NonStandardIdentifier {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define object_chosen 1
|
|
ASN1objectidentifier_t object;
|
|
# define h221NonStandard_chosen 2
|
|
NonStandardIdentifier_h221NonStandard h221NonStandard;
|
|
} u;
|
|
} NonStandardIdentifier;
|
|
|
|
typedef struct NonStandardParameter {
|
|
NonStandardIdentifier nonStandardIdentifier;
|
|
ASN1octetstring_t data;
|
|
} NonStandardParameter;
|
|
|
|
typedef struct CustomPictureFormat_pixelAspectInformation_extendedPAR_Set {
|
|
ASN1uint16_t width;
|
|
ASN1uint16_t height;
|
|
} CustomPictureFormat_pixelAspectInformation_extendedPAR_Set;
|
|
|
|
typedef struct CustomPictureFormat_mPI_customPCF_Set {
|
|
ASN1uint16_t clockConversionCode;
|
|
ASN1uint16_t clockDivisor;
|
|
ASN1uint16_t customMPI;
|
|
} CustomPictureFormat_mPI_customPCF_Set;
|
|
|
|
typedef struct VCCapability_availableBitRates_type_rangeOfBitRates {
|
|
ASN1uint16_t lowerBitRate;
|
|
ASN1uint16_t higherBitRate;
|
|
} VCCapability_availableBitRates_type_rangeOfBitRates;
|
|
|
|
typedef struct CustomPictureFormat_mPI_customPCF {
|
|
ASN1uint32_t count;
|
|
CustomPictureFormat_mPI_customPCF_Set value[16];
|
|
} CustomPictureFormat_mPI_customPCF;
|
|
|
|
typedef struct CustomPictureFormat_pixelAspectInformation_extendedPAR {
|
|
ASN1uint32_t count;
|
|
CustomPictureFormat_pixelAspectInformation_extendedPAR_Set value[256];
|
|
} CustomPictureFormat_pixelAspectInformation_extendedPAR;
|
|
|
|
typedef struct CustomPictureFormat_pixelAspectInformation_pixelAspectCode {
|
|
ASN1uint32_t count;
|
|
CustomPictureFormat_pixelAspectInformation_pixelAspectCode_Set value[14];
|
|
} CustomPictureFormat_pixelAspectInformation_pixelAspectCode;
|
|
|
|
|
|
typedef struct H263VideoMode_resolution {
|
|
ASN1choice_t choice;
|
|
# define sqcif_chosen 1
|
|
# define H263VideoMode_resolution_qcif_chosen 2
|
|
# define H263VideoMode_resolution_cif_chosen 3
|
|
# define cif4_chosen 4
|
|
# define cif16_chosen 5
|
|
} H263VideoMode_resolution;
|
|
|
|
typedef struct H262VideoMode_profileAndLevel {
|
|
ASN1choice_t choice;
|
|
# define profileAndLevel_SPatML_chosen 1
|
|
# define profileAndLevel_MPatLL_chosen 2
|
|
# define profileAndLevel_MPatML_chosen 3
|
|
# define profileAndLevel_MPatH_14_chosen 4
|
|
# define profileAndLevel_MPatHL_chosen 5
|
|
# define profileAndLevel_SNRatLL_chosen 6
|
|
# define profileAndLevel_SNRatML_chosen 7
|
|
# define profileAndLevel_SpatialatH_14_chosen 8
|
|
# define profileAndLevel_HPatML_chosen 9
|
|
# define profileAndLevel_HPatH_14_chosen 10
|
|
# define profileAndLevel_HPatHL_chosen 11
|
|
} H262VideoMode_profileAndLevel;
|
|
|
|
typedef struct H261VideoMode_resolution {
|
|
ASN1choice_t choice;
|
|
# define H261VideoMode_resolution_qcif_chosen 1
|
|
# define H261VideoMode_resolution_cif_chosen 2
|
|
} H261VideoMode_resolution;
|
|
|
|
typedef struct CustomPictureFormat_pixelAspectInformation {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define anyPixelAspectRatio_chosen 1
|
|
ASN1bool_t anyPixelAspectRatio;
|
|
# define pixelAspectCode_chosen 2
|
|
CustomPictureFormat_pixelAspectInformation_pixelAspectCode pixelAspectCode;
|
|
# define extendedPAR_chosen 3
|
|
CustomPictureFormat_pixelAspectInformation_extendedPAR extendedPAR;
|
|
} u;
|
|
} CustomPictureFormat_pixelAspectInformation;
|
|
|
|
typedef struct CustomPictureFormat_mPI {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define standardMPI_present 0x80
|
|
ASN1uint16_t standardMPI;
|
|
# define customPCF_present 0x40
|
|
CustomPictureFormat_mPI_customPCF customPCF;
|
|
} CustomPictureFormat_mPI;
|
|
|
|
typedef struct RefPictureSelection_videoBackChannelSend {
|
|
ASN1choice_t choice;
|
|
# define RefPictureSelection_videoBackChannelSend_none_chosen 1
|
|
# define ackMessageOnly_chosen 2
|
|
# define nackMessageOnly_chosen 3
|
|
# define ackOrNackMessageOnly_chosen 4
|
|
# define ackAndNackMessage_chosen 5
|
|
} RefPictureSelection_videoBackChannelSend;
|
|
|
|
typedef struct RefPictureSelection_additionalPictureMemory {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define sqcifAdditionalPictureMemory_present 0x80
|
|
ASN1uint16_t sqcifAdditionalPictureMemory;
|
|
# define qcifAdditionalPictureMemory_present 0x40
|
|
ASN1uint16_t qcifAdditionalPictureMemory;
|
|
# define cifAdditionalPictureMemory_present 0x20
|
|
ASN1uint16_t cifAdditionalPictureMemory;
|
|
# define cif4AdditionalPictureMemory_present 0x10
|
|
ASN1uint16_t cif4AdditionalPictureMemory;
|
|
# define cif16AdditionalPictureMemory_present 0x8
|
|
ASN1uint16_t cif16AdditionalPictureMemory;
|
|
# define bigCpfAdditionalPictureMemory_present 0x4
|
|
ASN1uint16_t bigCpfAdditionalPictureMemory;
|
|
} RefPictureSelection_additionalPictureMemory;
|
|
|
|
typedef struct RTPH263VideoRedundancyFrameMapping_frameSequence {
|
|
ASN1uint32_t count;
|
|
RTPH263VideoRedundancyFrameMapping_frameSequence_Seq value[256];
|
|
} RTPH263VideoRedundancyFrameMapping_frameSequence;
|
|
|
|
typedef struct RTPH263VideoRedundancyEncoding_containedThreads {
|
|
ASN1uint32_t count;
|
|
RTPH263VideoRedundancyEncoding_containedThreads_Seq value[256];
|
|
} RTPH263VideoRedundancyEncoding_containedThreads;
|
|
|
|
typedef struct RTPH263VideoRedundancyEncoding_frameToThreadMapping {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define roundrobin_chosen 1
|
|
# define custom_chosen 2
|
|
PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom custom;
|
|
} u;
|
|
} RTPH263VideoRedundancyEncoding_frameToThreadMapping;
|
|
|
|
typedef struct RedundancyEncodingCapability_secondaryEncoding {
|
|
PRedundancyEncodingCapability_secondaryEncoding next;
|
|
CapabilityTableEntryNumber value;
|
|
} RedundancyEncodingCapability_secondaryEncoding_Element;
|
|
|
|
|
|
typedef struct RTPH263VideoRedundancyEncoding {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1uint16_t numberOfThreads;
|
|
ASN1uint16_t framesBetweenSyncPoints;
|
|
RTPH263VideoRedundancyEncoding_frameToThreadMapping frameToThreadMapping;
|
|
# define containedThreads_present 0x80
|
|
RTPH263VideoRedundancyEncoding_containedThreads containedThreads;
|
|
} RTPH263VideoRedundancyEncoding;
|
|
|
|
typedef struct RTPH263VideoRedundancyFrameMapping {
|
|
ASN1uint16_t threadNumber;
|
|
RTPH263VideoRedundancyFrameMapping_frameSequence frameSequence;
|
|
} RTPH263VideoRedundancyFrameMapping;
|
|
|
|
typedef struct H261VideoCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define H261VideoCapability_qcifMPI_present 0x80
|
|
ASN1uint16_t qcifMPI;
|
|
# define H261VideoCapability_cifMPI_present 0x40
|
|
ASN1uint16_t cifMPI;
|
|
ASN1bool_t temporalSpatialTradeOffCapability;
|
|
ASN1uint16_t maxBitRate;
|
|
ASN1bool_t stillImageTransmission;
|
|
} H261VideoCapability;
|
|
|
|
typedef struct H262VideoCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1bool_t profileAndLevel_SPatML;
|
|
ASN1bool_t profileAndLevel_MPatLL;
|
|
ASN1bool_t profileAndLevel_MPatML;
|
|
ASN1bool_t profileAndLevel_MPatH_14;
|
|
ASN1bool_t profileAndLevel_MPatHL;
|
|
ASN1bool_t profileAndLevel_SNRatLL;
|
|
ASN1bool_t profileAndLevel_SNRatML;
|
|
ASN1bool_t profileAndLevel_SpatialatH_14;
|
|
ASN1bool_t profileAndLevel_HPatML;
|
|
ASN1bool_t profileAndLevel_HPatH_14;
|
|
ASN1bool_t profileAndLevel_HPatHL;
|
|
# define H262VideoCapability_videoBitRate_present 0x80
|
|
ASN1uint32_t videoBitRate;
|
|
# define H262VideoCapability_vbvBufferSize_present 0x40
|
|
ASN1uint32_t vbvBufferSize;
|
|
# define H262VideoCapability_samplesPerLine_present 0x20
|
|
ASN1uint16_t samplesPerLine;
|
|
# define H262VideoCapability_linesPerFrame_present 0x10
|
|
ASN1uint16_t linesPerFrame;
|
|
# define H262VideoCapability_framesPerSecond_present 0x8
|
|
ASN1uint16_t framesPerSecond;
|
|
# define H262VideoCapability_luminanceSampleRate_present 0x4
|
|
ASN1uint32_t luminanceSampleRate;
|
|
} H262VideoCapability;
|
|
|
|
|
|
typedef struct EnhancementLayerInfo {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1bool_t baseBitRateConstrained;
|
|
# define snrEnhancement_present 0x80
|
|
PEnhancementLayerInfo_snrEnhancement snrEnhancement;
|
|
# define spatialEnhancement_present 0x40
|
|
PEnhancementLayerInfo_spatialEnhancement spatialEnhancement;
|
|
# define bPictureEnhancement_present 0x20
|
|
PEnhancementLayerInfo_bPictureEnhancement bPictureEnhancement;
|
|
} EnhancementLayerInfo;
|
|
|
|
typedef struct TransparencyParameters {
|
|
ASN1uint16_t presentationOrder;
|
|
ASN1int32_t offset_x;
|
|
ASN1int32_t offset_y;
|
|
ASN1uint16_t scale_x;
|
|
ASN1uint16_t scale_y;
|
|
} TransparencyParameters;
|
|
|
|
typedef struct RefPictureSelection {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define additionalPictureMemory_present 0x80
|
|
RefPictureSelection_additionalPictureMemory additionalPictureMemory;
|
|
ASN1bool_t videoMux;
|
|
RefPictureSelection_videoBackChannelSend videoBackChannelSend;
|
|
} RefPictureSelection;
|
|
|
|
typedef struct CustomPictureClockFrequency {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1uint16_t clockConversionCode;
|
|
ASN1uint16_t clockDivisor;
|
|
# define CustomPictureClockFrequency_sqcifMPI_present 0x80
|
|
ASN1uint16_t sqcifMPI;
|
|
# define CustomPictureClockFrequency_qcifMPI_present 0x40
|
|
ASN1uint16_t qcifMPI;
|
|
# define CustomPictureClockFrequency_cifMPI_present 0x20
|
|
ASN1uint16_t cifMPI;
|
|
# define CustomPictureClockFrequency_cif4MPI_present 0x10
|
|
ASN1uint16_t cif4MPI;
|
|
# define CustomPictureClockFrequency_cif16MPI_present 0x8
|
|
ASN1uint16_t cif16MPI;
|
|
} CustomPictureClockFrequency;
|
|
|
|
|
|
typedef struct CustomPictureFormat {
|
|
ASN1uint16_t maxCustomPictureWidth;
|
|
ASN1uint16_t maxCustomPictureHeight;
|
|
ASN1uint16_t minCustomPictureWidth;
|
|
ASN1uint16_t minCustomPictureHeight;
|
|
CustomPictureFormat_mPI mPI;
|
|
CustomPictureFormat_pixelAspectInformation pixelAspectInformation;
|
|
} CustomPictureFormat;
|
|
|
|
typedef struct H263ModeComboFlags {
|
|
ASN1bool_t unrestrictedVector;
|
|
ASN1bool_t arithmeticCoding;
|
|
ASN1bool_t advancedPrediction;
|
|
ASN1bool_t pbFrames;
|
|
ASN1bool_t advancedIntraCodingMode;
|
|
ASN1bool_t deblockingFilterMode;
|
|
ASN1bool_t unlimitedMotionVectors;
|
|
ASN1bool_t slicesInOrder_NonRect;
|
|
ASN1bool_t slicesInOrder_Rect;
|
|
ASN1bool_t slicesNoOrder_NonRect;
|
|
ASN1bool_t slicesNoOrder_Rect;
|
|
ASN1bool_t improvedPBFramesMode;
|
|
ASN1bool_t referencePicSelect;
|
|
ASN1bool_t dynamicPictureResizingByFour;
|
|
ASN1bool_t dynamicPictureResizingSixteenthPel;
|
|
ASN1bool_t dynamicWarpingHalfPel;
|
|
ASN1bool_t dynamicWarpingSixteenthPel;
|
|
ASN1bool_t reducedResolutionUpdate;
|
|
ASN1bool_t independentSegmentDecoding;
|
|
ASN1bool_t alternateInterVLCMode;
|
|
ASN1bool_t modifiedQuantizationMode;
|
|
} H263ModeComboFlags;
|
|
|
|
typedef struct IS11172VideoCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1bool_t constrainedBitstream;
|
|
# define IS11172VideoCapability_videoBitRate_present 0x80
|
|
ASN1uint32_t videoBitRate;
|
|
# define IS11172VideoCapability_vbvBufferSize_present 0x40
|
|
ASN1uint32_t vbvBufferSize;
|
|
# define IS11172VideoCapability_samplesPerLine_present 0x20
|
|
ASN1uint16_t samplesPerLine;
|
|
# define IS11172VideoCapability_linesPerFrame_present 0x10
|
|
ASN1uint16_t linesPerFrame;
|
|
# define IS11172VideoCapability_pictureRate_present 0x8
|
|
ASN1uint16_t pictureRate;
|
|
# define IS11172VideoCapability_luminanceSampleRate_present 0x4
|
|
ASN1uint32_t luminanceSampleRate;
|
|
} IS11172VideoCapability;
|
|
|
|
typedef struct H261VideoMode {
|
|
H261VideoMode_resolution resolution;
|
|
ASN1uint16_t bitRate;
|
|
ASN1bool_t stillImageTransmission;
|
|
} H261VideoMode;
|
|
|
|
typedef struct H262VideoMode {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
H262VideoMode_profileAndLevel profileAndLevel;
|
|
# define H262VideoMode_videoBitRate_present 0x80
|
|
ASN1uint32_t videoBitRate;
|
|
# define H262VideoMode_vbvBufferSize_present 0x40
|
|
ASN1uint32_t vbvBufferSize;
|
|
# define H262VideoMode_samplesPerLine_present 0x20
|
|
ASN1uint16_t samplesPerLine;
|
|
# define H262VideoMode_linesPerFrame_present 0x10
|
|
ASN1uint16_t linesPerFrame;
|
|
# define H262VideoMode_framesPerSecond_present 0x8
|
|
ASN1uint16_t framesPerSecond;
|
|
# define H262VideoMode_luminanceSampleRate_present 0x4
|
|
ASN1uint32_t luminanceSampleRate;
|
|
} H262VideoMode;
|
|
|
|
typedef struct IS11172VideoMode {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1bool_t constrainedBitstream;
|
|
# define IS11172VideoMode_videoBitRate_present 0x80
|
|
ASN1uint32_t videoBitRate;
|
|
# define IS11172VideoMode_vbvBufferSize_present 0x40
|
|
ASN1uint32_t vbvBufferSize;
|
|
# define IS11172VideoMode_samplesPerLine_present 0x20
|
|
ASN1uint16_t samplesPerLine;
|
|
# define IS11172VideoMode_linesPerFrame_present 0x10
|
|
ASN1uint16_t linesPerFrame;
|
|
# define IS11172VideoMode_pictureRate_present 0x8
|
|
ASN1uint16_t pictureRate;
|
|
# define IS11172VideoMode_luminanceSampleRate_present 0x4
|
|
ASN1uint32_t luminanceSampleRate;
|
|
} IS11172VideoMode;
|
|
|
|
|
|
typedef struct RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom {
|
|
PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom next;
|
|
RTPH263VideoRedundancyFrameMapping value;
|
|
} RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_Element;
|
|
|
|
typedef struct H263VideoModeCombos_h263VideoCoupledModes {
|
|
ASN1uint32_t count;
|
|
H263ModeComboFlags value[16];
|
|
} H263VideoModeCombos_h263VideoCoupledModes;
|
|
|
|
typedef struct H263Options_customPictureFormat {
|
|
PH263Options_customPictureFormat next;
|
|
CustomPictureFormat value;
|
|
} H263Options_customPictureFormat_Element;
|
|
|
|
typedef struct H263Options_customPictureClockFrequency {
|
|
PH263Options_customPictureClockFrequency next;
|
|
CustomPictureClockFrequency value;
|
|
} H263Options_customPictureClockFrequency_Element;
|
|
|
|
typedef struct H263VideoModeCombos {
|
|
H263ModeComboFlags h263VideoUncoupledModes;
|
|
H263VideoModeCombos_h263VideoCoupledModes h263VideoCoupledModes;
|
|
} H263VideoModeCombos;
|
|
|
|
typedef struct H263Options_modeCombos {
|
|
PH263Options_modeCombos next;
|
|
H263VideoModeCombos value;
|
|
} H263Options_modeCombos_Element;
|
|
|
|
typedef struct H263Options {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1bool_t advancedIntraCodingMode;
|
|
ASN1bool_t deblockingFilterMode;
|
|
ASN1bool_t improvedPBFramesMode;
|
|
ASN1bool_t unlimitedMotionVectors;
|
|
ASN1bool_t fullPictureFreeze;
|
|
ASN1bool_t partialPictureFreezeAndRelease;
|
|
ASN1bool_t resizingPartPicFreezeAndRelease;
|
|
ASN1bool_t fullPictureSnapshot;
|
|
ASN1bool_t partialPictureSnapshot;
|
|
ASN1bool_t videoSegmentTagging;
|
|
ASN1bool_t progressiveRefinement;
|
|
ASN1bool_t dynamicPictureResizingByFour;
|
|
ASN1bool_t dynamicPictureResizingSixteenthPel;
|
|
ASN1bool_t dynamicWarpingHalfPel;
|
|
ASN1bool_t dynamicWarpingSixteenthPel;
|
|
ASN1bool_t independentSegmentDecoding;
|
|
ASN1bool_t slicesInOrder_NonRect;
|
|
ASN1bool_t slicesInOrder_Rect;
|
|
ASN1bool_t slicesNoOrder_NonRect;
|
|
ASN1bool_t slicesNoOrder_Rect;
|
|
ASN1bool_t alternateInterVLCMode;
|
|
ASN1bool_t modifiedQuantizationMode;
|
|
ASN1bool_t reducedResolutionUpdate;
|
|
# define transparencyParameters_present 0x80
|
|
TransparencyParameters transparencyParameters;
|
|
ASN1bool_t separateVideoBackChannel;
|
|
# define refPictureSelection_present 0x40
|
|
RefPictureSelection refPictureSelection;
|
|
# define customPictureClockFrequency_present 0x20
|
|
PH263Options_customPictureClockFrequency customPictureClockFrequency;
|
|
# define customPictureFormat_present 0x10
|
|
PH263Options_customPictureFormat customPictureFormat;
|
|
# define modeCombos_present 0x8
|
|
PH263Options_modeCombos modeCombos;
|
|
} H263Options;
|
|
|
|
|
|
typedef struct H263VideoMode {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
H263VideoMode_resolution resolution;
|
|
ASN1uint16_t bitRate;
|
|
ASN1bool_t unrestrictedVector;
|
|
ASN1bool_t arithmeticCoding;
|
|
ASN1bool_t advancedPrediction;
|
|
ASN1bool_t pbFrames;
|
|
# define H263VideoMode_errorCompensation_present 0x80
|
|
ASN1bool_t errorCompensation;
|
|
# define H263VideoMode_enhancementLayerInfo_present 0x40
|
|
EnhancementLayerInfo enhancementLayerInfo;
|
|
# define H263VideoMode_h263Options_present 0x20
|
|
H263Options h263Options;
|
|
} H263VideoMode;
|
|
|
|
|
|
typedef struct H263VideoCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[2];
|
|
};
|
|
# define H263VideoCapability_sqcifMPI_present 0x80
|
|
ASN1uint16_t sqcifMPI;
|
|
# define H263VideoCapability_qcifMPI_present 0x40
|
|
ASN1uint16_t qcifMPI;
|
|
# define H263VideoCapability_cifMPI_present 0x20
|
|
ASN1uint16_t cifMPI;
|
|
# define H263VideoCapability_cif4MPI_present 0x10
|
|
ASN1uint16_t cif4MPI;
|
|
# define H263VideoCapability_cif16MPI_present 0x8
|
|
ASN1uint16_t cif16MPI;
|
|
ASN1uint32_t maxBitRate;
|
|
ASN1bool_t unrestrictedVector;
|
|
ASN1bool_t arithmeticCoding;
|
|
ASN1bool_t advancedPrediction;
|
|
ASN1bool_t pbFrames;
|
|
ASN1bool_t temporalSpatialTradeOffCapability;
|
|
# define hrd_B_present 0x4
|
|
ASN1uint32_t hrd_B;
|
|
# define bppMaxKb_present 0x2
|
|
ASN1uint16_t bppMaxKb;
|
|
# define H263VideoCapability_slowSqcifMPI_present 0x8000
|
|
ASN1uint16_t slowSqcifMPI;
|
|
# define H263VideoCapability_slowQcifMPI_present 0x4000
|
|
ASN1uint16_t slowQcifMPI;
|
|
# define H263VideoCapability_slowCifMPI_present 0x2000
|
|
ASN1uint16_t slowCifMPI;
|
|
# define H263VideoCapability_slowCif4MPI_present 0x1000
|
|
ASN1uint16_t slowCif4MPI;
|
|
# define H263VideoCapability_slowCif16MPI_present 0x800
|
|
ASN1uint16_t slowCif16MPI;
|
|
# define H263VideoCapability_errorCompensation_present 0x400
|
|
ASN1bool_t errorCompensation;
|
|
# define H263VideoCapability_enhancementLayerInfo_present 0x200
|
|
EnhancementLayerInfo enhancementLayerInfo;
|
|
# define H263VideoCapability_h263Options_present 0x100
|
|
H263Options h263Options;
|
|
} H263VideoCapability;
|
|
|
|
|
|
typedef struct EnhancementOptions {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[2];
|
|
};
|
|
# define EnhancementOptions_sqcifMPI_present 0x80
|
|
ASN1uint16_t sqcifMPI;
|
|
# define EnhancementOptions_qcifMPI_present 0x40
|
|
ASN1uint16_t qcifMPI;
|
|
# define EnhancementOptions_cifMPI_present 0x20
|
|
ASN1uint16_t cifMPI;
|
|
# define EnhancementOptions_cif4MPI_present 0x10
|
|
ASN1uint16_t cif4MPI;
|
|
# define EnhancementOptions_cif16MPI_present 0x8
|
|
ASN1uint16_t cif16MPI;
|
|
ASN1uint32_t maxBitRate;
|
|
ASN1bool_t unrestrictedVector;
|
|
ASN1bool_t arithmeticCoding;
|
|
ASN1bool_t temporalSpatialTradeOffCapability;
|
|
# define EnhancementOptions_slowSqcifMPI_present 0x4
|
|
ASN1uint16_t slowSqcifMPI;
|
|
# define EnhancementOptions_slowQcifMPI_present 0x2
|
|
ASN1uint16_t slowQcifMPI;
|
|
# define EnhancementOptions_slowCifMPI_present 0x1
|
|
ASN1uint16_t slowCifMPI;
|
|
# define EnhancementOptions_slowCif4MPI_present 0x8000
|
|
ASN1uint16_t slowCif4MPI;
|
|
# define EnhancementOptions_slowCif16MPI_present 0x4000
|
|
ASN1uint16_t slowCif16MPI;
|
|
ASN1bool_t errorCompensation;
|
|
# define EnhancementOptions_h263Options_present 0x2000
|
|
H263Options h263Options;
|
|
} EnhancementOptions;
|
|
|
|
|
|
typedef struct BEnhancementParameters {
|
|
EnhancementOptions enhancementOptions;
|
|
ASN1uint16_t numberOfBPictures;
|
|
} BEnhancementParameters;
|
|
|
|
typedef struct EnhancementLayerInfo_bPictureEnhancement {
|
|
PEnhancementLayerInfo_bPictureEnhancement next;
|
|
BEnhancementParameters value;
|
|
} EnhancementLayerInfo_bPictureEnhancement_Element;
|
|
|
|
typedef struct VideoMode {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define VideoMode_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define h261VideoMode_chosen 2
|
|
H261VideoMode h261VideoMode;
|
|
# define h262VideoMode_chosen 3
|
|
H262VideoMode h262VideoMode;
|
|
# define h263VideoMode_chosen 4
|
|
H263VideoMode h263VideoMode;
|
|
# define is11172VideoMode_chosen 5
|
|
IS11172VideoMode is11172VideoMode;
|
|
} u;
|
|
} VideoMode;
|
|
|
|
typedef struct VideoCapability {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define VideoCapability_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define h261VideoCapability_chosen 2
|
|
H261VideoCapability h261VideoCapability;
|
|
# define h262VideoCapability_chosen 3
|
|
H262VideoCapability h262VideoCapability;
|
|
# define h263VideoCapability_chosen 4
|
|
H263VideoCapability h263VideoCapability;
|
|
# define is11172VideoCapability_chosen 5
|
|
IS11172VideoCapability is11172VideoCapability;
|
|
} u;
|
|
} VideoCapability;
|
|
|
|
/******************************************************************************
|
|
Audio Format/Capability definitions and structures
|
|
*******************************************************************************
|
|
*/
|
|
typedef struct G7231AnnexCCapability_g723AnnexCAudioMode {
|
|
ASN1uint16_t highRateMode0;
|
|
ASN1uint16_t highRateMode1;
|
|
ASN1uint16_t lowRateMode0;
|
|
ASN1uint16_t lowRateMode1;
|
|
ASN1uint16_t sidMode0;
|
|
ASN1uint16_t sidMode1;
|
|
} G7231AnnexCCapability_g723AnnexCAudioMode;
|
|
|
|
typedef struct G7231AnnexCCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
ASN1uint16_t maxAl_sduAudioFrames;
|
|
ASN1bool_t silenceSuppression;
|
|
# define g723AnnexCAudioMode_present 0x80
|
|
G7231AnnexCCapability_g723AnnexCAudioMode g723AnnexCAudioMode;
|
|
} G7231AnnexCCapability;
|
|
|
|
typedef struct IS11172AudioCapability {
|
|
ASN1bool_t audioLayer1;
|
|
ASN1bool_t audioLayer2;
|
|
ASN1bool_t audioLayer3;
|
|
ASN1bool_t audioSampling32k;
|
|
ASN1bool_t audioSampling44k1;
|
|
ASN1bool_t audioSampling48k;
|
|
ASN1bool_t singleChannel;
|
|
ASN1bool_t twoChannels;
|
|
ASN1uint16_t bitRate;
|
|
} IS11172AudioCapability;
|
|
|
|
|
|
typedef struct IS13818AudioCapability {
|
|
ASN1bool_t audioLayer1;
|
|
ASN1bool_t audioLayer2;
|
|
ASN1bool_t audioLayer3;
|
|
ASN1bool_t audioSampling16k;
|
|
ASN1bool_t audioSampling22k05;
|
|
ASN1bool_t audioSampling24k;
|
|
ASN1bool_t audioSampling32k;
|
|
ASN1bool_t audioSampling44k1;
|
|
ASN1bool_t audioSampling48k;
|
|
ASN1bool_t singleChannel;
|
|
ASN1bool_t twoChannels;
|
|
ASN1bool_t threeChannels2_1;
|
|
ASN1bool_t threeChannels3_0;
|
|
ASN1bool_t fourChannels2_0_2_0;
|
|
ASN1bool_t fourChannels2_2;
|
|
ASN1bool_t fourChannels3_1;
|
|
ASN1bool_t fiveChannels3_0_2_0;
|
|
ASN1bool_t fiveChannels3_2;
|
|
ASN1bool_t lowFrequencyEnhancement;
|
|
ASN1bool_t multilingual;
|
|
ASN1uint16_t bitRate;
|
|
} IS13818AudioCapability;
|
|
|
|
typedef struct GSMAudioCapability {
|
|
ASN1uint16_t audioUnitSize;
|
|
ASN1bool_t comfortNoise;
|
|
ASN1bool_t scrambled;
|
|
} GSMAudioCapability;
|
|
|
|
typedef struct AudioMode_g7231 {
|
|
ASN1choice_t choice;
|
|
# define noSilenceSuppressionLowRate_chosen 1
|
|
# define noSilenceSuppressionHighRate_chosen 2
|
|
# define silenceSuppressionLowRate_chosen 3
|
|
# define silenceSuppressionHighRate_chosen 4
|
|
} AudioMode_g7231;
|
|
|
|
typedef struct AudioCapability_g7231 {
|
|
ASN1uint16_t maxAl_sduAudioFrames;
|
|
ASN1bool_t silenceSuppression;
|
|
} AudioCapability_g7231;
|
|
|
|
typedef struct G7231AnnexCMode_g723AnnexCAudioMode {
|
|
ASN1uint16_t highRateMode0;
|
|
ASN1uint16_t highRateMode1;
|
|
ASN1uint16_t lowRateMode0;
|
|
ASN1uint16_t lowRateMode1;
|
|
ASN1uint16_t sidMode0;
|
|
ASN1uint16_t sidMode1;
|
|
} G7231AnnexCMode_g723AnnexCAudioMode;
|
|
|
|
typedef struct G7231AnnexCMode {
|
|
ASN1uint16_t maxAl_sduAudioFrames;
|
|
ASN1bool_t silenceSuppression;
|
|
G7231AnnexCMode_g723AnnexCAudioMode g723AnnexCAudioMode;
|
|
} G7231AnnexCMode;
|
|
|
|
typedef struct IS13818AudioMode_multichannelType {
|
|
ASN1choice_t choice;
|
|
# define IS13818AudioMode_multichannelType_singleChannel_chosen 1
|
|
# define IS13818AudioMode_multichannelType_twoChannelStereo_chosen 2
|
|
# define IS13818AudioMode_multichannelType_twoChannelDual_chosen 3
|
|
# define threeChannels2_1_chosen 4
|
|
# define threeChannels3_0_chosen 5
|
|
# define fourChannels2_0_2_0_chosen 6
|
|
# define fourChannels2_2_chosen 7
|
|
# define fourChannels3_1_chosen 8
|
|
# define fiveChannels3_0_2_0_chosen 9
|
|
# define fiveChannels3_2_chosen 10
|
|
} IS13818AudioMode_multichannelType;
|
|
|
|
typedef struct IS13818AudioMode_audioSampling {
|
|
ASN1choice_t choice;
|
|
# define audioSampling16k_chosen 1
|
|
# define audioSampling22k05_chosen 2
|
|
# define audioSampling24k_chosen 3
|
|
# define IS13818AudioMode_audioSampling_audioSampling32k_chosen 4
|
|
# define IS13818AudioMode_audioSampling_audioSampling44k1_chosen 5
|
|
# define IS13818AudioMode_audioSampling_audioSampling48k_chosen 6
|
|
} IS13818AudioMode_audioSampling;
|
|
|
|
typedef struct IS13818AudioMode_audioLayer {
|
|
ASN1choice_t choice;
|
|
# define IS13818AudioMode_audioLayer_audioLayer1_chosen 1
|
|
# define IS13818AudioMode_audioLayer_audioLayer2_chosen 2
|
|
# define IS13818AudioMode_audioLayer_audioLayer3_chosen 3
|
|
} IS13818AudioMode_audioLayer;
|
|
|
|
typedef struct IS11172AudioMode_multichannelType {
|
|
ASN1choice_t choice;
|
|
# define IS11172AudioMode_multichannelType_singleChannel_chosen 1
|
|
# define IS11172AudioMode_multichannelType_twoChannelStereo_chosen 2
|
|
# define IS11172AudioMode_multichannelType_twoChannelDual_chosen 3
|
|
} IS11172AudioMode_multichannelType;
|
|
|
|
typedef struct IS11172AudioMode_audioSampling {
|
|
ASN1choice_t choice;
|
|
# define IS11172AudioMode_audioSampling_audioSampling32k_chosen 1
|
|
# define IS11172AudioMode_audioSampling_audioSampling44k1_chosen 2
|
|
# define IS11172AudioMode_audioSampling_audioSampling48k_chosen 3
|
|
} IS11172AudioMode_audioSampling;
|
|
|
|
typedef struct IS11172AudioMode_audioLayer {
|
|
ASN1choice_t choice;
|
|
# define IS11172AudioMode_audioLayer_audioLayer1_chosen 1
|
|
# define IS11172AudioMode_audioLayer_audioLayer2_chosen 2
|
|
# define IS11172AudioMode_audioLayer_audioLayer3_chosen 3
|
|
} IS11172AudioMode_audioLayer;
|
|
|
|
|
|
typedef struct IS11172AudioMode {
|
|
IS11172AudioMode_audioLayer audioLayer;
|
|
IS11172AudioMode_audioSampling audioSampling;
|
|
IS11172AudioMode_multichannelType multichannelType;
|
|
ASN1uint16_t bitRate;
|
|
} IS11172AudioMode;
|
|
|
|
typedef struct IS13818AudioMode {
|
|
IS13818AudioMode_audioLayer audioLayer;
|
|
IS13818AudioMode_audioSampling audioSampling;
|
|
IS13818AudioMode_multichannelType multichannelType;
|
|
ASN1bool_t lowFrequencyEnhancement;
|
|
ASN1bool_t multilingual;
|
|
ASN1uint16_t bitRate;
|
|
} IS13818AudioMode;
|
|
|
|
|
|
typedef struct AudioCapability {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define AudioCapability_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define AudioCapability_g711Alaw64k_chosen 2
|
|
ASN1uint16_t g711Alaw64k;
|
|
# define AudioCapability_g711Alaw56k_chosen 3
|
|
ASN1uint16_t g711Alaw56k;
|
|
# define AudioCapability_g711Ulaw64k_chosen 4
|
|
ASN1uint16_t g711Ulaw64k;
|
|
# define AudioCapability_g711Ulaw56k_chosen 5
|
|
ASN1uint16_t g711Ulaw56k;
|
|
# define AudioCapability_g722_64k_chosen 6
|
|
ASN1uint16_t g722_64k;
|
|
# define AudioCapability_g722_56k_chosen 7
|
|
ASN1uint16_t g722_56k;
|
|
# define AudioCapability_g722_48k_chosen 8
|
|
ASN1uint16_t g722_48k;
|
|
# define AudioCapability_g7231_chosen 9
|
|
AudioCapability_g7231 g7231;
|
|
# define AudioCapability_g728_chosen 10
|
|
ASN1uint16_t g728;
|
|
# define AudioCapability_g729_chosen 11
|
|
ASN1uint16_t g729;
|
|
# define AudioCapability_g729AnnexA_chosen 12
|
|
ASN1uint16_t g729AnnexA;
|
|
# define is11172AudioCapability_chosen 13
|
|
IS11172AudioCapability is11172AudioCapability;
|
|
# define is13818AudioCapability_chosen 14
|
|
IS13818AudioCapability is13818AudioCapability;
|
|
# define AudioCapability_g729wAnnexB_chosen 15
|
|
ASN1uint16_t g729wAnnexB;
|
|
# define AudioCapability_g729AnnexAwAnnexB_chosen 16
|
|
ASN1uint16_t g729AnnexAwAnnexB;
|
|
# define g7231AnnexCCapability_chosen 17
|
|
G7231AnnexCCapability g7231AnnexCCapability;
|
|
# define AudioCapability_gsmFullRate_chosen 18
|
|
GSMAudioCapability gsmFullRate;
|
|
# define AudioCapability_gsmHalfRate_chosen 19
|
|
GSMAudioCapability gsmHalfRate;
|
|
# define AudioCapability_gsmEnhancedFullRate_chosen 20
|
|
GSMAudioCapability gsmEnhancedFullRate;
|
|
} u;
|
|
} AudioCapability;
|
|
|
|
|
|
typedef struct AudioMode {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define AudioMode_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define AudioMode_g711Alaw64k_chosen 2
|
|
# define AudioMode_g711Alaw56k_chosen 3
|
|
# define AudioMode_g711Ulaw64k_chosen 4
|
|
# define AudioMode_g711Ulaw56k_chosen 5
|
|
# define AudioMode_g722_64k_chosen 6
|
|
# define AudioMode_g722_56k_chosen 7
|
|
# define AudioMode_g722_48k_chosen 8
|
|
# define AudioMode_g728_chosen 9
|
|
# define AudioMode_g729_chosen 10
|
|
# define AudioMode_g729AnnexA_chosen 11
|
|
# define AudioMode_g7231_chosen 12
|
|
AudioMode_g7231 g7231;
|
|
# define is11172AudioMode_chosen 13
|
|
IS11172AudioMode is11172AudioMode;
|
|
# define is13818AudioMode_chosen 14
|
|
IS13818AudioMode is13818AudioMode;
|
|
# define AudioMode_g729wAnnexB_chosen 15
|
|
ASN1uint16_t g729wAnnexB;
|
|
# define AudioMode_g729AnnexAwAnnexB_chosen 16
|
|
ASN1uint16_t g729AnnexAwAnnexB;
|
|
# define g7231AnnexCMode_chosen 17
|
|
G7231AnnexCMode g7231AnnexCMode;
|
|
# define AudioMode_gsmFullRate_chosen 18
|
|
GSMAudioCapability gsmFullRate;
|
|
# define AudioMode_gsmHalfRate_chosen 19
|
|
GSMAudioCapability gsmHalfRate;
|
|
# define AudioMode_gsmEnhancedFullRate_chosen 20
|
|
GSMAudioCapability gsmEnhancedFullRate;
|
|
} u;
|
|
} AudioMode;
|
|
|
|
|
|
typedef struct T84Profile_t84Restricted {
|
|
ASN1bool_t qcif;
|
|
ASN1bool_t cif;
|
|
ASN1bool_t ccir601Seq;
|
|
ASN1bool_t ccir601Prog;
|
|
ASN1bool_t hdtvSeq;
|
|
ASN1bool_t hdtvProg;
|
|
ASN1bool_t g3FacsMH200x100;
|
|
ASN1bool_t g3FacsMH200x200;
|
|
ASN1bool_t g4FacsMMR200x100;
|
|
ASN1bool_t g4FacsMMR200x200;
|
|
ASN1bool_t jbig200x200Seq;
|
|
ASN1bool_t jbig200x200Prog;
|
|
ASN1bool_t jbig300x300Seq;
|
|
ASN1bool_t jbig300x300Prog;
|
|
ASN1bool_t digPhotoLow;
|
|
ASN1bool_t digPhotoMedSeq;
|
|
ASN1bool_t digPhotoMedProg;
|
|
ASN1bool_t digPhotoHighSeq;
|
|
ASN1bool_t digPhotoHighProg;
|
|
} T84Profile_t84Restricted;
|
|
|
|
typedef struct V42bis {
|
|
ASN1uint32_t numberOfCodewords;
|
|
ASN1uint16_t maximumStringLength;
|
|
} V42bis;
|
|
|
|
typedef struct T84Profile {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define t84Unrestricted_chosen 1
|
|
# define t84Restricted_chosen 2
|
|
T84Profile_t84Restricted t84Restricted;
|
|
} u;
|
|
} T84Profile;
|
|
|
|
typedef struct CompressionType {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define v42bis_chosen 1
|
|
V42bis v42bis;
|
|
} u;
|
|
} CompressionType;
|
|
|
|
typedef struct DataProtocolCapability_v76wCompression {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define transmitCompression_chosen 1
|
|
CompressionType transmitCompression;
|
|
# define receiveCompression_chosen 2
|
|
CompressionType receiveCompression;
|
|
# define transmitAndReceiveCompression_chosen 3
|
|
CompressionType transmitAndReceiveCompression;
|
|
} u;
|
|
} DataProtocolCapability_v76wCompression;
|
|
|
|
typedef struct DataProtocolCapability {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define DataProtocolCapability_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define v14buffered_chosen 2
|
|
# define v42lapm_chosen 3
|
|
# define hdlcFrameTunnelling_chosen 4
|
|
# define h310SeparateVCStack_chosen 5
|
|
# define h310SingleVCStack_chosen 6
|
|
# define transparent_chosen 7
|
|
# define segmentationAndReassembly_chosen 8
|
|
# define hdlcFrameTunnelingwSAR_chosen 9
|
|
# define v120_chosen 10
|
|
# define separateLANStack_chosen 11
|
|
# define v76wCompression_chosen 12
|
|
DataProtocolCapability_v76wCompression v76wCompression;
|
|
} u;
|
|
} DataProtocolCapability;
|
|
|
|
|
|
typedef struct DataMode_application_nlpid {
|
|
DataProtocolCapability nlpidProtocol;
|
|
ASN1octetstring_t nlpidData;
|
|
} DataMode_application_nlpid;
|
|
|
|
typedef struct DataMode_application {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define DataMode_application_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define DataMode_application_t120_chosen 2
|
|
DataProtocolCapability t120;
|
|
# define DataMode_application_dsm_cc_chosen 3
|
|
DataProtocolCapability dsm_cc;
|
|
# define DataMode_application_userData_chosen 4
|
|
DataProtocolCapability userData;
|
|
# define DataMode_application_t84_chosen 5
|
|
DataProtocolCapability t84;
|
|
# define DataMode_application_t434_chosen 6
|
|
DataProtocolCapability t434;
|
|
# define DataMode_application_h224_chosen 7
|
|
DataProtocolCapability h224;
|
|
# define DataMode_application_nlpid_chosen 8
|
|
DataMode_application_nlpid nlpid;
|
|
# define DataMode_application_dsvdControl_chosen 9
|
|
# define DataMode_application_h222DataPartitioning_chosen 10
|
|
DataProtocolCapability h222DataPartitioning;
|
|
# define DataMode_application_t30fax_chosen 11
|
|
DataProtocolCapability t30fax;
|
|
# define DataMode_application_t140_chosen 12
|
|
DataProtocolCapability t140;
|
|
} u;
|
|
} DataMode_application;
|
|
|
|
typedef struct DataMode {
|
|
DataMode_application application;
|
|
ASN1uint32_t bitRate;
|
|
} DataMode;
|
|
|
|
typedef struct EncryptionMode {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define EncryptionMode_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define h233Encryption_chosen 2
|
|
} u;
|
|
} EncryptionMode;
|
|
|
|
typedef struct AuthenticationCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define AuthenticationCapability_nonStandard_present 0x80
|
|
NonStandardParameter nonStandard;
|
|
} AuthenticationCapability;
|
|
|
|
typedef struct IntegrityCapability {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define IntegrityCapability_nonStandard_present 0x80
|
|
NonStandardParameter nonStandard;
|
|
} IntegrityCapability;
|
|
|
|
typedef struct EncryptionAuthenticationAndIntegrity {
|
|
union {
|
|
ASN1uint16_t bit_mask;
|
|
ASN1octet_t o[1];
|
|
};
|
|
# define encryptionCapability_present 0x80
|
|
PEncryptionCapability encryptionCapability;
|
|
# define authenticationCapability_present 0x40
|
|
AuthenticationCapability authenticationCapability;
|
|
# define integrityCapability_present 0x20
|
|
IntegrityCapability integrityCapability;
|
|
} EncryptionAuthenticationAndIntegrity;
|
|
|
|
typedef struct H235Mode_mediaMode {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define H235Mode_mediaMode_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define H235Mode_mediaMode_videoMode_chosen 2
|
|
VideoMode videoMode;
|
|
# define H235Mode_mediaMode_audioMode_chosen 3
|
|
AudioMode audioMode;
|
|
# define H235Mode_mediaMode_dataMode_chosen 4
|
|
DataMode dataMode;
|
|
} u;
|
|
} H235Mode_mediaMode;
|
|
|
|
|
|
|
|
typedef struct H235Mode {
|
|
EncryptionAuthenticationAndIntegrity encryptionAuthenticationAndIntegrity;
|
|
H235Mode_mediaMode mediaMode;
|
|
} H235Mode;
|
|
|
|
typedef struct ModeElement_type {
|
|
ASN1choice_t choice;
|
|
union {
|
|
# define ModeElement_type_nonStandard_chosen 1
|
|
NonStandardParameter nonStandard;
|
|
# define ModeElement_type_videoMode_chosen 2
|
|
VideoMode videoMode;
|
|
# define ModeElement_type_audioMode_chosen 3
|
|
AudioMode audioMode;
|
|
# define ModeElement_type_dataMode_chosen 4
|
|
DataMode dataMode;
|
|
# define encryptionMode_chosen 5
|
|
EncryptionMode encryptionMode;
|
|
# define h235Mode_chosen 6
|
|
H235Mode h235Mode;
|
|
} u;
|
|
} ModeElement_type;
|
|
|
|
#endif // _H245ASN_Module_H_
|
|
|
|
typedef VideoCapability H245VideoCapability;
|
|
typedef AudioCapability H245AudioCapability;
|
|
typedef ModeElement_type H245_MODE_ELEMENT;
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwApplicationCapID;
|
|
ASN1choice_t choiceSetupProcedure;
|
|
BOOL fRestrictAudio;
|
|
BOOL fRestrictVideo;
|
|
DataProtocolCapability T120ProtocolCap;
|
|
//NonStandardParameter *pNonStandardParameter;
|
|
}H245T120Capability;
|
|
|
|
typedef enum
|
|
{
|
|
H245MediaType_Audio,
|
|
H245MediaType_Video,
|
|
H245MediaType_T120
|
|
}H245MediaCapabilityType;
|
|
|
|
// media capability structure
|
|
typedef struct tag_H245MediaCapability
|
|
{
|
|
H245MediaCapabilityType media_type;
|
|
union
|
|
{
|
|
H245AudioCapability audio_cap;
|
|
H245VideoCapability video_cap;
|
|
H245T120Capability T120_cap;
|
|
}capability;
|
|
|
|
}H245MediaCapability;
|
|
|
|
typedef struct tag_FormatResourceBounds
|
|
{
|
|
DWORD dwBitsPerSecond;
|
|
DWORD dwCPUUtilization;
|
|
} FormatResourceBounds;
|
|
|
|
#ifdef __cplusplus
|
|
|
|
/*****************************************************************************
|
|
* @doc INTERNAL H245VIDCSTRUCTENUM
|
|
*
|
|
* @struct H245VideoCapabilityMap | The <t H245VideoCapabilityMap> structure
|
|
* is used to specify the relationship between supported formats and
|
|
* estimated maximum system resources for the supported format.
|
|
*
|
|
* @field H245MediaCapability | h245MediaCapability | Specifies the H.245
|
|
* video/audio format, including all parameters and options. This structure
|
|
* is H.245 version specific: its definition depends on the version of
|
|
* H.245 used by the TAPI MSP filters. For video, this structure may indicate
|
|
* format parameters for more than one standard video size at a time if
|
|
* the resource requirements are similar for all sizes.
|
|
*
|
|
* @field GUID | filterGuid | Specifies a GUID value that uniquely
|
|
* identifies the TAPI MSP filter.
|
|
*
|
|
* @field DWORD | dwUniqueID | Specifies a DWORD value that uniquely
|
|
* identifies the capability of the TAPI MSP filter.
|
|
*
|
|
* @field UINT | uNumEntries | This indicates the number of elements
|
|
* referenced by <t pResourceBoundArray>.
|
|
*
|
|
* @field FormatResourceBounds* | pResourceBoundArray | Specifies an array
|
|
* of <t FormatResourceBounds> structures that indicate the approximate
|
|
* resource bounds of each entry.
|
|
***************************************************************************/
|
|
typedef struct tag_H245MediaCapabilityMap
|
|
{
|
|
H245MediaCapability h245MediaCapability;
|
|
GUID filterGuid;
|
|
DWORD dwUniqueID;
|
|
UINT uNumEntries;
|
|
FormatResourceBounds *pResourceBoundArray;
|
|
} H245MediaCapabilityMap;
|
|
|
|
/*****************************************************************************
|
|
* @doc INTERNAL H245VIDCSTRUCTENUM
|
|
*
|
|
* @struct H245MediaCapabilityTable | The <t H245MediaCapabilityTable> structure
|
|
* is used to specify the set of formats that are supported by the TAPI MSP
|
|
* filters.
|
|
*
|
|
* @field UINT | uMappedCapabilities | Specifies the number of
|
|
* <t H245VideoCapabilityMap> structures in <t pCapabilityArray>.
|
|
*
|
|
* @field H245MediaCapabilityMap* | pCapabilityArray | Specifies a pointer
|
|
* to an array of <t H245MediaCapabilityMap> structures.
|
|
***************************************************************************/
|
|
typedef struct tag_H245MediaCapabilityTable
|
|
{
|
|
UINT uMappedCapabilities;
|
|
H245MediaCapabilityMap *pCapabilityArray;
|
|
} H245MediaCapabilityTable;
|
|
|
|
/*****************************************************************************
|
|
* @doc INTERNAL CONST
|
|
*
|
|
* @const int | TAPI_H245_VERSION_ID | Specifies the H.245 platform
|
|
* version 3.
|
|
***************************************************************************/
|
|
#define TAPI_H245_VERSION_ID 3
|
|
|
|
// H.245 video capability interface (pin interface)
|
|
interface DECLSPEC_UUID("ec35770f-b64d-405d-a5f2-4514164ba87a") IH245Capability : public IUnknown
|
|
{
|
|
public:
|
|
virtual STDMETHODIMP GetH245VersionID(OUT DWORD *pdwVersionID) PURE;
|
|
virtual STDMETHODIMP GetFormatTable(OUT H245MediaCapabilityTable *pTable) PURE;
|
|
virtual STDMETHODIMP ReleaseFormatTable(IN H245MediaCapabilityTable *pTable) PURE;
|
|
virtual STDMETHODIMP IntersectFormats(
|
|
IN DWORD dwUniqueID,
|
|
IN const H245MediaCapability *pLocalCapability,
|
|
IN const H245MediaCapability *pRemoteCapability,
|
|
OUT H245MediaCapability **ppIntersectedCapability,
|
|
OUT DWORD *pdwPayloadType
|
|
) PURE;
|
|
|
|
virtual STDMETHODIMP Refine(IN OUT H245MediaCapability *pLocalCapability, IN DWORD dwUniqueID, IN DWORD dwResourceBoundIndex) PURE;
|
|
virtual STDMETHODIMP GetLocalFormat(IN DWORD dwUniqueID, IN const H245MediaCapability *pIntersectedCapability, OUT AM_MEDIA_TYPE **ppAMMediaType) PURE;
|
|
virtual STDMETHODIMP ReleaseNegotiatedCapability(IN H245MediaCapability *pIntersectedCapability) PURE;
|
|
virtual STDMETHODIMP FindIDByRange(IN const AM_MEDIA_TYPE *pAMMediaType, OUT DWORD *pdwUniqueID) PURE;
|
|
};
|
|
|
|
// IH245EncoderCommand interface (pin interface)
|
|
interface DECLSPEC_UUID("b4263e5b-f216-4b58-9968-ba9ab7808ab3") IH245EncoderCommand : public IUnknown
|
|
{
|
|
public:
|
|
virtual STDMETHODIMP videoFastUpdatePicture() PURE;
|
|
virtual STDMETHODIMP videoFastUpdateGOB(IN DWORD dwFirstGOB, IN DWORD dwNumberOfGOBs) PURE;
|
|
virtual STDMETHODIMP videoFastUpdateMB(IN DWORD dwFirstGOB, IN DWORD dwFirstMB, IN DWORD dwNumberOfMBs) PURE;
|
|
virtual STDMETHODIMP videoSendSyncEveryGOB(IN BOOL fEnable) PURE;
|
|
virtual STDMETHODIMP videoNotDecodedMBs(IN DWORD dwFirstMB, IN DWORD dwNumberOfMBs, IN DWORD dwTemporalReference) PURE;
|
|
};
|
|
|
|
// IH245DecoderCommand interface (pin interface)
|
|
interface DECLSPEC_UUID("a542d119-6abd-48a5-92db-dac1dfe6995c") IH245DecoderCommand : public IUnknown
|
|
{
|
|
public:
|
|
virtual STDMETHODIMP videoFreezePicture() PURE;
|
|
};
|
|
|
|
#ifdef USE_PROGRESSIVE_REFINEMENT
|
|
// Progressive refinement interface (pin interface)
|
|
interface DECLSPEC_UUID("46a02824-6d1f-49d9-9e62-e1694f28ab1a") IProgressiveRefinement : public IUnknown
|
|
{
|
|
public:
|
|
virtual STDMETHODIMP doOneProgression() PURE;
|
|
virtual STDMETHODIMP doContinuousProgressions() PURE;
|
|
virtual STDMETHODIMP doOneIndependentProgression() PURE;
|
|
virtual STDMETHODIMP doContinuousIndependentProgressions() PURE;
|
|
virtual STDMETHODIMP progressiveRefinementAbortOne() PURE;
|
|
virtual STDMETHODIMP progressiveRefinementAbortContinuous() PURE;
|
|
};
|
|
#endif
|
|
|
|
#if !defined(STREAM_INTERFACES_DEFINED)
|
|
|
|
#define MAX_DESCRIPTION_LEN 256
|
|
|
|
typedef enum tagStreamConfigCapsType
|
|
{
|
|
AudioStreamConfigCaps,
|
|
VideoStreamConfigCaps
|
|
} StreamConfigCapsType;
|
|
|
|
typedef struct _TAPI_AUDIO_STREAM_CONFIG_CAPS
|
|
{
|
|
WCHAR Description[MAX_DESCRIPTION_LEN];
|
|
ULONG MinimumChannels;
|
|
ULONG MaximumChannels;
|
|
ULONG ChannelsGranularity;
|
|
ULONG MinimumBitsPerSample;
|
|
ULONG MaximumBitsPerSample;
|
|
ULONG BitsPerSampleGranularity;
|
|
ULONG MinimumSampleFrequency;
|
|
ULONG MaximumSampleFrequency;
|
|
ULONG SampleFrequencyGranularity;
|
|
ULONG MinimumAvgBytesPerSec;
|
|
ULONG MaximumAvgBytesPerSec;
|
|
ULONG AvgBytesPerSecGranularity;
|
|
} TAPI_AUDIO_STREAM_CONFIG_CAPS, *PTAPI_AUDIO_STREAM_CONFIG_CAPS;
|
|
|
|
typedef struct _TAPI_VIDEO_STREAM_CONFIG_CAPS
|
|
{
|
|
WCHAR Description[MAX_DESCRIPTION_LEN];
|
|
ULONG VideoStandard;
|
|
SIZE InputSize;
|
|
SIZE MinCroppingSize;
|
|
SIZE MaxCroppingSize;
|
|
int CropGranularityX;
|
|
int CropGranularityY;
|
|
int CropAlignX;
|
|
int CropAlignY;
|
|
SIZE MinOutputSize;
|
|
SIZE MaxOutputSize;
|
|
int OutputGranularityX;
|
|
int OutputGranularityY;
|
|
int StretchTapsX;
|
|
int StretchTapsY;
|
|
int ShrinkTapsX;
|
|
int ShrinkTapsY;
|
|
LONGLONG MinFrameInterval;
|
|
LONGLONG MaxFrameInterval;
|
|
LONG MinBitsPerSecond;
|
|
LONG MaxBitsPerSecond;
|
|
} TAPI_VIDEO_STREAM_CONFIG_CAPS, *PTAPI_VIDEO_STREAM_CONFIG_CAPS;
|
|
|
|
typedef struct tagTAPI_STREAM_CONFIG_CAPS
|
|
{
|
|
StreamConfigCapsType CapsType;
|
|
union
|
|
{
|
|
TAPI_VIDEO_STREAM_CONFIG_CAPS VideoCap;
|
|
TAPI_AUDIO_STREAM_CONFIG_CAPS AudioCap;
|
|
};
|
|
} TAPI_STREAM_CONFIG_CAPS, *PTAPI_STREAM_CONFIG_CAPS;
|
|
|
|
#endif
|
|
|
|
|
|
// used in SetFormat when the payload type is unknown.
|
|
const DWORD UNKNOWN_PAYLOAD = (DWORD)(-1);
|
|
|
|
// IStreamConfig interface (pin interface)
|
|
interface DECLSPEC_UUID("c5888472-8f4f-475b-8f5b-93b6c8e7567f") IStreamConfig : public IUnknown
|
|
{
|
|
// TODO, we need to introduce a new interface to handle all the RTP payload type
|
|
// related issues. The payload type info shouldn't be in this interface.
|
|
|
|
public:
|
|
virtual STDMETHODIMP SetFormat(IN DWORD dwRTPPayLoadType, IN AM_MEDIA_TYPE *pMediaType) PURE;
|
|
virtual STDMETHODIMP GetFormat(OUT DWORD *pdwRTPPayLoadType, OUT AM_MEDIA_TYPE **ppMediaType) PURE;
|
|
virtual STDMETHODIMP GetNumberOfCapabilities(OUT DWORD *pdwCount) PURE;
|
|
virtual STDMETHODIMP GetStreamCaps(IN DWORD dwIndex, OUT AM_MEDIA_TYPE **ppMediaType, OUT TAPI_STREAM_CONFIG_CAPS *pTSCC, OUT DWORD *pdwRTPPayLoadType) PURE;
|
|
};
|
|
|
|
#endif // __cplusplus
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // __H245FMT_H__
|