dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/addons/ooh323c/src/h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c

26600 lines
749 KiB
C

/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* This file was generated by the Objective Systems ASN1C Compiler
* (http://www.obj-sys.com). Version: 5.72, Date: 22-Mar-2005.
*/
#include "ooasn1.h"
#include "MULTIMEDIA-SYSTEM-CONTROL.h"
/**************************************************************/
/* */
/* NonStandardIdentifier_h221NonStandard */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NonStandardIdentifier_h221NonStandard (OOCTXT* pctxt, H245NonStandardIdentifier_h221NonStandard* pvalue)
{
int stat = ASN_OK;
/* encode t35CountryCode */
stat = encodeConsUnsigned (pctxt, pvalue->t35CountryCode, 0U, 255U);
if (stat != ASN_OK) return stat;
/* encode t35Extension */
stat = encodeConsUnsigned (pctxt, pvalue->t35Extension, 0U, 255U);
if (stat != ASN_OK) return stat;
/* encode manufacturerCode */
stat = encodeConsUnsigned (pctxt, pvalue->manufacturerCode, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NonStandardIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NonStandardIdentifier (OOCTXT* pctxt, H245NonStandardIdentifier* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* object */
case 1:
stat = encodeObjectIdentifier (pctxt, pvalue->u.object);
if (stat != ASN_OK) return stat;
break;
/* h221NonStandard */
case 2:
stat = asn1PE_H245NonStandardIdentifier_h221NonStandard (pctxt, pvalue->u.h221NonStandard);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* NonStandardParameter */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NonStandardParameter (OOCTXT* pctxt, H245NonStandardParameter* pvalue)
{
int stat = ASN_OK;
/* encode nonStandardIdentifier */
stat = asn1PE_H245NonStandardIdentifier (pctxt, &pvalue->nonStandardIdentifier);
if (stat != ASN_OK) return stat;
/* encode data */
stat = encodeOctetString (pctxt, pvalue->data.numocts, pvalue->data.data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V42bis */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V42bis (OOCTXT* pctxt, H245V42bis* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode numberOfCodewords */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfCodewords, 1U, 65536U);
if (stat != ASN_OK) return stat;
/* encode maximumStringLength */
stat = encodeConsUnsigned (pctxt, pvalue->maximumStringLength, 1U, 256U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CompressionType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CompressionType (OOCTXT* pctxt, H245CompressionType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* v42bis */
case 1:
stat = asn1PE_H245V42bis (pctxt, pvalue->u.v42bis);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* DataProtocolCapability_v76wCompression */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataProtocolCapability_v76wCompression (OOCTXT* pctxt, H245DataProtocolCapability_v76wCompression* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* transmitCompression */
case 1:
stat = asn1PE_H245CompressionType (pctxt, pvalue->u.transmitCompression);
if (stat != ASN_OK) return stat;
break;
/* receiveCompression */
case 2:
stat = asn1PE_H245CompressionType (pctxt, pvalue->u.receiveCompression);
if (stat != ASN_OK) return stat;
break;
/* transmitAndReceiveCompression */
case 3:
stat = asn1PE_H245CompressionType (pctxt, pvalue->u.transmitAndReceiveCompression);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* DataProtocolCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataProtocolCapability (OOCTXT* pctxt, H245DataProtocolCapability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 7);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 6);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* v14buffered */
case 2:
/* NULL */
break;
/* v42lapm */
case 3:
/* NULL */
break;
/* hdlcFrameTunnelling */
case 4:
/* NULL */
break;
/* h310SeparateVCStack */
case 5:
/* NULL */
break;
/* h310SingleVCStack */
case 6:
/* NULL */
break;
/* transparent */
case 7:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 8);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* segmentationAndReassembly */
case 8:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* hdlcFrameTunnelingwSAR */
case 9:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* v120 */
case 10:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* separateLANStack */
case 11:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* v76wCompression */
case 12:
stat = asn1PE_H245DataProtocolCapability_v76wCompression (&lctxt, pvalue->u.v76wCompression);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* tcp */
case 13:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* udp */
case 14:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* T38FaxRateManagement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T38FaxRateManagement (OOCTXT* pctxt, H245T38FaxRateManagement* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* localTCF */
case 1:
/* NULL */
break;
/* transferredTCF */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* T38FaxUdpOptions_t38FaxUdpEC */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T38FaxUdpOptions_t38FaxUdpEC (OOCTXT* pctxt, H245T38FaxUdpOptions_t38FaxUdpEC* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* t38UDPFEC */
case 1:
/* NULL */
break;
/* t38UDPRedundancy */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* T38FaxUdpOptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T38FaxUdpOptions (OOCTXT* pctxt, H245T38FaxUdpOptions* pvalue)
{
int stat = ASN_OK;
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t38FaxMaxBufferPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t38FaxMaxDatagramPresent);
/* encode t38FaxMaxBuffer */
if (pvalue->m.t38FaxMaxBufferPresent) {
stat = encodeUnconsInteger (pctxt, pvalue->t38FaxMaxBuffer);
if (stat != ASN_OK) return stat;
}
/* encode t38FaxMaxDatagram */
if (pvalue->m.t38FaxMaxDatagramPresent) {
stat = encodeUnconsInteger (pctxt, pvalue->t38FaxMaxDatagram);
if (stat != ASN_OK) return stat;
}
/* encode t38FaxUdpEC */
stat = asn1PE_H245T38FaxUdpOptions_t38FaxUdpEC (pctxt, &pvalue->t38FaxUdpEC);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* T38FaxTcpOptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T38FaxTcpOptions (OOCTXT* pctxt, H245T38FaxTcpOptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode t38TCPBidirectionalMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->t38TCPBidirectionalMode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* T38FaxProfile */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T38FaxProfile (OOCTXT* pctxt, H245T38FaxProfile* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.versionPresent ||
pvalue->m.t38FaxRateManagementPresent ||
pvalue->m.t38FaxUdpOptionsPresent ||
pvalue->m.t38FaxTcpOptionsPresent);
encodeBit (pctxt, extbit);
/* encode fillBitRemoval */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fillBitRemoval);
if (stat != ASN_OK) return stat;
/* encode transcodingJBIG */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->transcodingJBIG);
if (stat != ASN_OK) return stat;
/* encode transcodingMMR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->transcodingMMR);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 3);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.versionPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t38FaxRateManagementPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t38FaxUdpOptionsPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t38FaxTcpOptionsPresent);
/* encode extension elements */
if (pvalue->m.versionPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->version, 0U, 255U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.t38FaxRateManagementPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245T38FaxRateManagement (&lctxt, &pvalue->t38FaxRateManagement);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.t38FaxUdpOptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245T38FaxUdpOptions (&lctxt, &pvalue->t38FaxUdpOptions);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.t38FaxTcpOptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245T38FaxTcpOptions (&lctxt, &pvalue->t38FaxTcpOptions);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* NonStandardMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NonStandardMessage (OOCTXT* pctxt, H245NonStandardMessage* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode nonStandardData */
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandardData);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDetermination */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDetermination (OOCTXT* pctxt, H245MasterSlaveDetermination* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalType */
stat = encodeConsUnsigned (pctxt, pvalue->terminalType, 0U, 255U);
if (stat != ASN_OK) return stat;
/* encode statusDeterminationNumber */
stat = encodeConsUnsigned (pctxt, pvalue->statusDeterminationNumber, 0U, 16777215U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* SequenceNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SequenceNumber (OOCTXT* pctxt, H245SequenceNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_aal1 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_aal1 (OOCTXT* pctxt, H245VCCapability_aal1* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode nullClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->nullClockRecovery);
if (stat != ASN_OK) return stat;
/* encode srtsClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->srtsClockRecovery);
if (stat != ASN_OK) return stat;
/* encode adaptiveClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->adaptiveClockRecovery);
if (stat != ASN_OK) return stat;
/* encode nullErrorCorrection */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->nullErrorCorrection);
if (stat != ASN_OK) return stat;
/* encode longInterleaver */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->longInterleaver);
if (stat != ASN_OK) return stat;
/* encode shortInterleaver */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->shortInterleaver);
if (stat != ASN_OK) return stat;
/* encode errorCorrectionOnly */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->errorCorrectionOnly);
if (stat != ASN_OK) return stat;
/* encode structuredDataTransfer */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->structuredDataTransfer);
if (stat != ASN_OK) return stat;
/* encode partiallyFilledCells */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partiallyFilledCells);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_aal5 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_aal5 (OOCTXT* pctxt, H245VCCapability_aal5* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->forwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode backwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->backwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_availableBitRates_type_rangeOfBitRates */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_availableBitRates_type_rangeOfBitRates (OOCTXT* pctxt, H245VCCapability_availableBitRates_type_rangeOfBitRates* pvalue)
{
int stat = ASN_OK;
/* encode lowerBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->lowerBitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode higherBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->higherBitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_availableBitRates_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_availableBitRates_type (OOCTXT* pctxt, H245VCCapability_availableBitRates_type* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* singleBitRate */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.singleBitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* rangeOfBitRates */
case 2:
stat = asn1PE_H245VCCapability_availableBitRates_type_rangeOfBitRates (pctxt, pvalue->u.rangeOfBitRates);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_availableBitRates */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_availableBitRates (OOCTXT* pctxt, H245VCCapability_availableBitRates* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245VCCapability_availableBitRates_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* Q2931Address_address_nsapAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Q2931Address_address_nsapAddress (OOCTXT* pctxt, H245Q2931Address_address_nsapAddress* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* Q2931Address_address */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Q2931Address_address (OOCTXT* pctxt, H245Q2931Address_address* pvalue)
{
static Asn1SizeCnst internationalNumber_lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* internationalNumber */
case 1:
addSizeConstraint (pctxt, &internationalNumber_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->u.internationalNumber, NUM_CANSET, 4, 4, 4);
if (stat != ASN_OK) return stat;
break;
/* nsapAddress */
case 2:
stat = asn1PE_H245Q2931Address_address_nsapAddress (pctxt, pvalue->u.nsapAddress);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* Q2931Address_subaddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Q2931Address_subaddress (OOCTXT* pctxt, H245Q2931Address_subaddress* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* Q2931Address */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Q2931Address (OOCTXT* pctxt, H245Q2931Address* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.subaddressPresent);
/* encode address */
stat = asn1PE_H245Q2931Address_address (pctxt, &pvalue->address);
if (stat != ASN_OK) return stat;
/* encode subaddress */
if (pvalue->m.subaddressPresent) {
stat = asn1PE_H245Q2931Address_subaddress (pctxt, &pvalue->subaddress);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_aal1ViaGateway_gatewayAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_aal1ViaGateway_gatewayAddress (OOCTXT* pctxt, H245VCCapability_aal1ViaGateway_gatewayAddress* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245Q2931Address (pctxt, ((H245Q2931Address*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* VCCapability_aal1ViaGateway */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability_aal1ViaGateway (OOCTXT* pctxt, H245VCCapability_aal1ViaGateway* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode gatewayAddress */
stat = asn1PE_H245VCCapability_aal1ViaGateway_gatewayAddress (pctxt, &pvalue->gatewayAddress);
if (stat != ASN_OK) return stat;
/* encode nullClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->nullClockRecovery);
if (stat != ASN_OK) return stat;
/* encode srtsClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->srtsClockRecovery);
if (stat != ASN_OK) return stat;
/* encode adaptiveClockRecovery */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->adaptiveClockRecovery);
if (stat != ASN_OK) return stat;
/* encode nullErrorCorrection */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->nullErrorCorrection);
if (stat != ASN_OK) return stat;
/* encode longInterleaver */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->longInterleaver);
if (stat != ASN_OK) return stat;
/* encode shortInterleaver */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->shortInterleaver);
if (stat != ASN_OK) return stat;
/* encode errorCorrectionOnly */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->errorCorrectionOnly);
if (stat != ASN_OK) return stat;
/* encode structuredDataTransfer */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->structuredDataTransfer);
if (stat != ASN_OK) return stat;
/* encode partiallyFilledCells */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partiallyFilledCells);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VCCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VCCapability (OOCTXT* pctxt, H245VCCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.aal1ViaGatewayPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.aal1Present);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.aal5Present);
/* encode aal1 */
if (pvalue->m.aal1Present) {
stat = asn1PE_H245VCCapability_aal1 (pctxt, &pvalue->aal1);
if (stat != ASN_OK) return stat;
}
/* encode aal5 */
if (pvalue->m.aal5Present) {
stat = asn1PE_H245VCCapability_aal5 (pctxt, &pvalue->aal5);
if (stat != ASN_OK) return stat;
}
/* encode transportStream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->transportStream);
if (stat != ASN_OK) return stat;
/* encode programStream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->programStream);
if (stat != ASN_OK) return stat;
/* encode availableBitRates */
stat = asn1PE_H245VCCapability_availableBitRates (pctxt, &pvalue->availableBitRates);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.aal1ViaGatewayPresent);
/* encode extension elements */
if (pvalue->m.aal1ViaGatewayPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245VCCapability_aal1ViaGateway (&lctxt, &pvalue->aal1ViaGateway);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* _SetOfH245VCCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SetOfH245VCCapability (OOCTXT* pctxt, H245_SetOfH245VCCapability* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245VCCapability (pctxt, ((H245VCCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* H222Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H222Capability (OOCTXT* pctxt, H245H222Capability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode numberOfVCs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfVCs, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode vcCapability */
stat = asn1PE_H245_SetOfH245VCCapability (pctxt, &pvalue->vcCapability);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223Capability_h223MultiplexTableCapability_enhanced */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223Capability_h223MultiplexTableCapability_enhanced (OOCTXT* pctxt, H245H223Capability_h223MultiplexTableCapability_enhanced* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maximumNestingDepth */
stat = encodeConsUnsigned (pctxt, pvalue->maximumNestingDepth, 1U, 15U);
if (stat != ASN_OK) return stat;
/* encode maximumElementListSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumElementListSize, 2U, 255U);
if (stat != ASN_OK) return stat;
/* encode maximumSubElementListSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumSubElementListSize, 2U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223Capability_h223MultiplexTableCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223Capability_h223MultiplexTableCapability (OOCTXT* pctxt, H245H223Capability_h223MultiplexTableCapability* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* basic */
case 1:
/* NULL */
break;
/* enhanced */
case 2:
stat = asn1PE_H245H223Capability_h223MultiplexTableCapability_enhanced (pctxt, pvalue->u.enhanced);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* H223Capability_mobileOperationTransmitCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223Capability_mobileOperationTransmitCapability (OOCTXT* pctxt, H245H223Capability_mobileOperationTransmitCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode modeChangeCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->modeChangeCapability);
if (stat != ASN_OK) return stat;
/* encode h223AnnexA */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->h223AnnexA);
if (stat != ASN_OK) return stat;
/* encode h223AnnexADoubleFlag */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->h223AnnexADoubleFlag);
if (stat != ASN_OK) return stat;
/* encode h223AnnexB */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->h223AnnexB);
if (stat != ASN_OK) return stat;
/* encode h223AnnexBwithHeader */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->h223AnnexBwithHeader);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223AnnexCCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AnnexCCapability (OOCTXT* pctxt, H245H223AnnexCCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rsCodeCapabilityPresent);
encodeBit (pctxt, extbit);
/* encode videoWithAL1M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL1M);
if (stat != ASN_OK) return stat;
/* encode videoWithAL2M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL2M);
if (stat != ASN_OK) return stat;
/* encode videoWithAL3M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL3M);
if (stat != ASN_OK) return stat;
/* encode audioWithAL1M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL1M);
if (stat != ASN_OK) return stat;
/* encode audioWithAL2M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL2M);
if (stat != ASN_OK) return stat;
/* encode audioWithAL3M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL3M);
if (stat != ASN_OK) return stat;
/* encode dataWithAL1M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL1M);
if (stat != ASN_OK) return stat;
/* encode dataWithAL2M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL2M);
if (stat != ASN_OK) return stat;
/* encode dataWithAL3M */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL3M);
if (stat != ASN_OK) return stat;
/* encode alpduInterleaving */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alpduInterleaving);
if (stat != ASN_OK) return stat;
/* encode maximumAL1MPDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAL1MPDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode maximumAL2MSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAL2MSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode maximumAL3MSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAL3MSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rsCodeCapabilityPresent);
/* encode extension elements */
if (pvalue->m.rsCodeCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->rsCodeCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H223Capability_mobileMultilinkFrameCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223Capability_mobileMultilinkFrameCapability (OOCTXT* pctxt, H245H223Capability_mobileMultilinkFrameCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maximumSampleSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumSampleSize, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode maximumPayloadLength */
stat = encodeConsUnsigned (pctxt, pvalue->maximumPayloadLength, 1U, 65025U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223Capability (OOCTXT* pctxt, H245H223Capability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.maxMUXPDUSizeCapabilityPresent ||
pvalue->m.nsrpSupportPresent ||
pvalue->m.mobileOperationTransmitCapabilityPresent ||
pvalue->m.h223AnnexCCapabilityPresent ||
pvalue->m.bitRatePresent ||
pvalue->m.mobileMultilinkFrameCapabilityPresent);
encodeBit (pctxt, extbit);
/* encode transportWithI_frames */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->transportWithI_frames);
if (stat != ASN_OK) return stat;
/* encode videoWithAL1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL1);
if (stat != ASN_OK) return stat;
/* encode videoWithAL2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL2);
if (stat != ASN_OK) return stat;
/* encode videoWithAL3 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoWithAL3);
if (stat != ASN_OK) return stat;
/* encode audioWithAL1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL1);
if (stat != ASN_OK) return stat;
/* encode audioWithAL2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL2);
if (stat != ASN_OK) return stat;
/* encode audioWithAL3 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioWithAL3);
if (stat != ASN_OK) return stat;
/* encode dataWithAL1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL1);
if (stat != ASN_OK) return stat;
/* encode dataWithAL2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL2);
if (stat != ASN_OK) return stat;
/* encode dataWithAL3 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataWithAL3);
if (stat != ASN_OK) return stat;
/* encode maximumAl2SDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAl2SDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode maximumAl3SDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAl3SDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode maximumDelayJitter */
stat = encodeConsUnsigned (pctxt, pvalue->maximumDelayJitter, 0U, 1023U);
if (stat != ASN_OK) return stat;
/* encode h223MultiplexTableCapability */
stat = asn1PE_H245H223Capability_h223MultiplexTableCapability (pctxt, &pvalue->h223MultiplexTableCapability);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 5);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.maxMUXPDUSizeCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nsrpSupportPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mobileOperationTransmitCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h223AnnexCCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.bitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mobileMultilinkFrameCapabilityPresent);
/* encode extension elements */
if (pvalue->m.maxMUXPDUSizeCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->maxMUXPDUSizeCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.nsrpSupportPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->nsrpSupport);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.mobileOperationTransmitCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H223Capability_mobileOperationTransmitCapability (&lctxt, &pvalue->mobileOperationTransmitCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h223AnnexCCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H223AnnexCCapability (&lctxt, &pvalue->h223AnnexCCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.bitRatePresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->bitRate, 1U, 19200U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.mobileMultilinkFrameCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H223Capability_mobileMultilinkFrameCapability (&lctxt, &pvalue->mobileMultilinkFrameCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* V75Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V75Capability (OOCTXT* pctxt, H245V75Capability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioHeader */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioHeader);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V76Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76Capability (OOCTXT* pctxt, H245V76Capability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode suspendResumeCapabilitywAddress */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->suspendResumeCapabilitywAddress);
if (stat != ASN_OK) return stat;
/* encode suspendResumeCapabilitywoAddress */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->suspendResumeCapabilitywoAddress);
if (stat != ASN_OK) return stat;
/* encode rejCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->rejCapability);
if (stat != ASN_OK) return stat;
/* encode sREJCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->sREJCapability);
if (stat != ASN_OK) return stat;
/* encode mREJCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->mREJCapability);
if (stat != ASN_OK) return stat;
/* encode crc8bitCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->crc8bitCapability);
if (stat != ASN_OK) return stat;
/* encode crc16bitCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->crc16bitCapability);
if (stat != ASN_OK) return stat;
/* encode crc32bitCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->crc32bitCapability);
if (stat != ASN_OK) return stat;
/* encode uihCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->uihCapability);
if (stat != ASN_OK) return stat;
/* encode numOfDLCS */
stat = encodeConsUnsigned (pctxt, pvalue->numOfDLCS, 2U, 8191U);
if (stat != ASN_OK) return stat;
/* encode twoOctetAddressFieldCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->twoOctetAddressFieldCapability);
if (stat != ASN_OK) return stat;
/* encode loopBackTestCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->loopBackTestCapability);
if (stat != ASN_OK) return stat;
/* encode n401Capability */
stat = encodeConsUnsigned (pctxt, pvalue->n401Capability, 1U, 4095U);
if (stat != ASN_OK) return stat;
/* encode maxWindowSizeCapability */
stat = encodeConsUnsigned (pctxt, pvalue->maxWindowSizeCapability, 1U, 127U);
if (stat != ASN_OK) return stat;
/* encode v75Capability */
stat = asn1PE_H245V75Capability (pctxt, &pvalue->v75Capability);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* T84Profile_t84Restricted */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T84Profile_t84Restricted (OOCTXT* pctxt, H245T84Profile_t84Restricted* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode qcif */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->qcif);
if (stat != ASN_OK) return stat;
/* encode cif */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->cif);
if (stat != ASN_OK) return stat;
/* encode ccir601Seq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->ccir601Seq);
if (stat != ASN_OK) return stat;
/* encode ccir601Prog */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->ccir601Prog);
if (stat != ASN_OK) return stat;
/* encode hdtvSeq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->hdtvSeq);
if (stat != ASN_OK) return stat;
/* encode hdtvProg */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->hdtvProg);
if (stat != ASN_OK) return stat;
/* encode g3FacsMH200x100 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->g3FacsMH200x100);
if (stat != ASN_OK) return stat;
/* encode g3FacsMH200x200 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->g3FacsMH200x200);
if (stat != ASN_OK) return stat;
/* encode g4FacsMMR200x100 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->g4FacsMMR200x100);
if (stat != ASN_OK) return stat;
/* encode g4FacsMMR200x200 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->g4FacsMMR200x200);
if (stat != ASN_OK) return stat;
/* encode jbig200x200Seq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->jbig200x200Seq);
if (stat != ASN_OK) return stat;
/* encode jbig200x200Prog */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->jbig200x200Prog);
if (stat != ASN_OK) return stat;
/* encode jbig300x300Seq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->jbig300x300Seq);
if (stat != ASN_OK) return stat;
/* encode jbig300x300Prog */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->jbig300x300Prog);
if (stat != ASN_OK) return stat;
/* encode digPhotoLow */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->digPhotoLow);
if (stat != ASN_OK) return stat;
/* encode digPhotoMedSeq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->digPhotoMedSeq);
if (stat != ASN_OK) return stat;
/* encode digPhotoMedProg */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->digPhotoMedProg);
if (stat != ASN_OK) return stat;
/* encode digPhotoHighSeq */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->digPhotoHighSeq);
if (stat != ASN_OK) return stat;
/* encode digPhotoHighProg */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->digPhotoHighProg);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* T84Profile */
/* */
/**************************************************************/
EXTERN int asn1PE_H245T84Profile (OOCTXT* pctxt, H245T84Profile* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* t84Unrestricted */
case 1:
/* NULL */
break;
/* t84Restricted */
case 2:
stat = asn1PE_H245T84Profile_t84Restricted (pctxt, pvalue->u.t84Restricted);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* DataApplicationCapability_application_t84 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataApplicationCapability_application_t84 (OOCTXT* pctxt, H245DataApplicationCapability_application_t84* pvalue)
{
int stat = ASN_OK;
/* encode t84Protocol */
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->t84Protocol);
if (stat != ASN_OK) return stat;
/* encode t84Profile */
stat = asn1PE_H245T84Profile (pctxt, &pvalue->t84Profile);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DataApplicationCapability_application_nlpid */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataApplicationCapability_application_nlpid (OOCTXT* pctxt, H245DataApplicationCapability_application_nlpid* pvalue)
{
int stat = ASN_OK;
/* encode nlpidProtocol */
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->nlpidProtocol);
if (stat != ASN_OK) return stat;
/* encode nlpidData */
stat = encodeOctetString (pctxt, pvalue->nlpidData.numocts, pvalue->nlpidData.data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DataApplicationCapability_application_t38fax */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataApplicationCapability_application_t38fax (OOCTXT* pctxt, H245DataApplicationCapability_application_t38fax* pvalue)
{
int stat = ASN_OK;
/* encode t38FaxProtocol */
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->t38FaxProtocol);
if (stat != ASN_OK) return stat;
/* encode t38FaxProfile */
stat = asn1PE_H245T38FaxProfile (pctxt, &pvalue->t38FaxProfile);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CapabilityIdentifier_uuid */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityIdentifier_uuid (OOCTXT* pctxt, H245CapabilityIdentifier_uuid* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CapabilityIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityIdentifier (OOCTXT* pctxt, H245CapabilityIdentifier* pvalue)
{
static Asn1SizeCnst domainBased_lsize1 = { 0, 1, 64, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* standard */
case 1:
stat = encodeObjectIdentifier (pctxt, pvalue->u.standard);
if (stat != ASN_OK) return stat;
break;
/* h221NonStandard */
case 2:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.h221NonStandard);
if (stat != ASN_OK) return stat;
break;
/* uuid */
case 3:
stat = asn1PE_H245CapabilityIdentifier_uuid (pctxt, pvalue->u.uuid);
if (stat != ASN_OK) return stat;
break;
/* domainBased */
case 4:
addSizeConstraint (pctxt, &domainBased_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->u.domainBased, 0, 8, 7, 7);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ParameterIdentifier_uuid */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ParameterIdentifier_uuid (OOCTXT* pctxt, H245ParameterIdentifier_uuid* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ParameterIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ParameterIdentifier (OOCTXT* pctxt, H245ParameterIdentifier* pvalue)
{
static Asn1SizeCnst domainBased_lsize1 = { 0, 1, 64, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* standard */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.standard, 0U, 127U);
if (stat != ASN_OK) return stat;
break;
/* h221NonStandard */
case 2:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.h221NonStandard);
if (stat != ASN_OK) return stat;
break;
/* uuid */
case 3:
stat = asn1PE_H245ParameterIdentifier_uuid (pctxt, pvalue->u.uuid);
if (stat != ASN_OK) return stat;
break;
/* domainBased */
case 4:
addSizeConstraint (pctxt, &domainBased_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->u.domainBased, 0, 8, 7, 7);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ParameterValue */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ParameterValue (OOCTXT* pctxt, H245ParameterValue* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 8);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 7);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logical */
case 1:
/* NULL */
break;
/* booleanArray */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.booleanArray, 0U, 255U);
if (stat != ASN_OK) return stat;
break;
/* unsignedMin */
case 3:
stat = encodeConsUnsigned (pctxt, pvalue->u.unsignedMin, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* unsignedMax */
case 4:
stat = encodeConsUnsigned (pctxt, pvalue->u.unsignedMax, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* unsigned32Min */
case 5:
stat = encodeConsUnsigned (pctxt, pvalue->u.unsigned32Min, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
break;
/* unsigned32Max */
case 6:
stat = encodeConsUnsigned (pctxt, pvalue->u.unsigned32Max, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
break;
/* octetString */
case 7:
stat = encodeOctetString (pctxt, pvalue->u.octetString->numocts, pvalue->u.octetString->data);
if (stat != ASN_OK) return stat;
break;
/* genericParameter */
case 8:
stat = asn1PE_H245_SeqOfH245GenericParameter (pctxt, (H245_SeqOfH245GenericParameter*)pvalue->u.genericParameter);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 9);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245ParameterIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245ParameterIdentifier (OOCTXT* pctxt, H245_SeqOfH245ParameterIdentifier* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245ParameterIdentifier (pctxt, ((H245ParameterIdentifier*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* GenericParameter */
/* */
/**************************************************************/
EXTERN int asn1PE_H245GenericParameter (OOCTXT* pctxt, H245GenericParameter* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.supersedesPresent);
/* encode parameterIdentifier */
stat = asn1PE_H245ParameterIdentifier (pctxt, &pvalue->parameterIdentifier);
if (stat != ASN_OK) return stat;
/* encode parameterValue */
stat = asn1PE_H245ParameterValue (pctxt, &pvalue->parameterValue);
if (stat != ASN_OK) return stat;
/* encode supersedes */
if (pvalue->m.supersedesPresent) {
stat = asn1PE_H245_SeqOfH245ParameterIdentifier (pctxt, &pvalue->supersedes);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245GenericParameter */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245GenericParameter (OOCTXT* pctxt, H245_SeqOfH245GenericParameter* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245GenericParameter (pctxt, ((H245GenericParameter*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* GenericCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245GenericCapability (OOCTXT* pctxt, H245GenericCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.maxBitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.collapsingPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonCollapsingPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonCollapsingRawPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.transportPresent);
/* encode capabilityIdentifier */
stat = asn1PE_H245CapabilityIdentifier (pctxt, &pvalue->capabilityIdentifier);
if (stat != ASN_OK) return stat;
/* encode maxBitRate */
if (pvalue->m.maxBitRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->maxBitRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode collapsing */
if (pvalue->m.collapsingPresent) {
stat = asn1PE_H245_SeqOfH245GenericParameter (pctxt, &pvalue->collapsing);
if (stat != ASN_OK) return stat;
}
/* encode nonCollapsing */
if (pvalue->m.nonCollapsingPresent) {
stat = asn1PE_H245_SeqOfH245GenericParameter (pctxt, &pvalue->nonCollapsing);
if (stat != ASN_OK) return stat;
}
/* encode nonCollapsingRaw */
if (pvalue->m.nonCollapsingRawPresent) {
stat = encodeOctetString (pctxt, pvalue->nonCollapsingRaw.numocts, pvalue->nonCollapsingRaw.data);
if (stat != ASN_OK) return stat;
}
/* encode transport */
if (pvalue->m.transportPresent) {
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->transport);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* DataApplicationCapability_application */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataApplicationCapability_application (OOCTXT* pctxt, H245DataApplicationCapability_application* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 10);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* t120 */
case 2:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.t120);
if (stat != ASN_OK) return stat;
break;
/* dsm_cc */
case 3:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.dsm_cc);
if (stat != ASN_OK) return stat;
break;
/* userData */
case 4:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.userData);
if (stat != ASN_OK) return stat;
break;
/* t84 */
case 5:
stat = asn1PE_H245DataApplicationCapability_application_t84 (pctxt, pvalue->u.t84);
if (stat != ASN_OK) return stat;
break;
/* t434 */
case 6:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.t434);
if (stat != ASN_OK) return stat;
break;
/* h224 */
case 7:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.h224);
if (stat != ASN_OK) return stat;
break;
/* nlpid */
case 8:
stat = asn1PE_H245DataApplicationCapability_application_nlpid (pctxt, pvalue->u.nlpid);
if (stat != ASN_OK) return stat;
break;
/* dsvdControl */
case 9:
/* NULL */
break;
/* h222DataPartitioning */
case 10:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.h222DataPartitioning);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 11);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* t30fax */
case 11:
stat = asn1PE_H245DataProtocolCapability (&lctxt, pvalue->u.t30fax);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* t140 */
case 12:
stat = asn1PE_H245DataProtocolCapability (&lctxt, pvalue->u.t140);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* t38fax */
case 13:
stat = asn1PE_H245DataApplicationCapability_application_t38fax (&lctxt, pvalue->u.t38fax);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericDataCapability */
case 14:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericDataCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* DataApplicationCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataApplicationCapability (OOCTXT* pctxt, H245DataApplicationCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode application */
stat = asn1PE_H245DataApplicationCapability_application (pctxt, &pvalue->application);
if (stat != ASN_OK) return stat;
/* encode maxBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->maxBitRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245DataApplicationCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245DataApplicationCapability (OOCTXT* pctxt, H245_SeqOfH245DataApplicationCapability* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245DataApplicationCapability (pctxt, ((H245DataApplicationCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* MediaDistributionCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaDistributionCapability (OOCTXT* pctxt, H245MediaDistributionCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.centralizedDataPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.distributedDataPresent);
/* encode centralizedControl */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->centralizedControl);
if (stat != ASN_OK) return stat;
/* encode distributedControl */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->distributedControl);
if (stat != ASN_OK) return stat;
/* encode centralizedAudio */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->centralizedAudio);
if (stat != ASN_OK) return stat;
/* encode distributedAudio */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->distributedAudio);
if (stat != ASN_OK) return stat;
/* encode centralizedVideo */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->centralizedVideo);
if (stat != ASN_OK) return stat;
/* encode distributedVideo */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->distributedVideo);
if (stat != ASN_OK) return stat;
/* encode centralizedData */
if (pvalue->m.centralizedDataPresent) {
stat = asn1PE_H245_SeqOfH245DataApplicationCapability (pctxt, &pvalue->centralizedData);
if (stat != ASN_OK) return stat;
}
/* encode distributedData */
if (pvalue->m.distributedDataPresent) {
stat = asn1PE_H245_SeqOfH245DataApplicationCapability (pctxt, &pvalue->distributedData);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245MediaDistributionCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245MediaDistributionCapability (OOCTXT* pctxt, H245_SeqOfH245MediaDistributionCapability* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245MediaDistributionCapability (pctxt, ((H245MediaDistributionCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultipointCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultipointCapability (OOCTXT* pctxt, H245MultipointCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode multicastCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->multicastCapability);
if (stat != ASN_OK) return stat;
/* encode multiUniCastConference */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->multiUniCastConference);
if (stat != ASN_OK) return stat;
/* encode mediaDistributionCapability */
stat = asn1PE_H245_SeqOfH245MediaDistributionCapability (pctxt, &pvalue->mediaDistributionCapability);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H2250Capability_mcCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250Capability_mcCapability (OOCTXT* pctxt, H245H2250Capability_mcCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode centralizedConferenceMC */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->centralizedConferenceMC);
if (stat != ASN_OK) return stat;
/* encode decentralizedConferenceMC */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->decentralizedConferenceMC);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RTPPayloadType_payloadDescriptor */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPPayloadType_payloadDescriptor (OOCTXT* pctxt, H245RTPPayloadType_payloadDescriptor* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandardIdentifier */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandardIdentifier);
if (stat != ASN_OK) return stat;
break;
/* rfc_number */
case 2:
if ( (pvalue->u.rfc_number >= 1 && pvalue->u.rfc_number <= 32768) ) {
extbit = 0;
}
else extbit = 1;
/* extension bit */
encodeBit (pctxt, extbit);
if (extbit) {
stat = encodeUnconsInteger (pctxt, pvalue->u.rfc_number);
if (stat != ASN_OK) return stat;
}
else {
stat = encodeConsInteger (pctxt, pvalue->u.rfc_number, 1, 32768);
if (stat != ASN_OK) return stat;
}
break;
/* oid */
case 3:
stat = encodeObjectIdentifier (pctxt, pvalue->u.oid);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RTPPayloadType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPPayloadType (OOCTXT* pctxt, H245RTPPayloadType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.payloadTypePresent);
/* encode payloadDescriptor */
stat = asn1PE_H245RTPPayloadType_payloadDescriptor (pctxt, &pvalue->payloadDescriptor);
if (stat != ASN_OK) return stat;
/* encode payloadType */
if (pvalue->m.payloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->payloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MediaPacketizationCapability_rtpPayloadType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaPacketizationCapability_rtpPayloadType (OOCTXT* pctxt, H245MediaPacketizationCapability_rtpPayloadType* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245RTPPayloadType (pctxt, ((H245RTPPayloadType*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MediaPacketizationCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaPacketizationCapability (OOCTXT* pctxt, H245MediaPacketizationCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rtpPayloadTypePresent);
encodeBit (pctxt, extbit);
/* encode h261aVideoPacketization */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->h261aVideoPacketization);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpPayloadTypePresent);
/* encode extension elements */
if (pvalue->m.rtpPayloadTypePresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245MediaPacketizationCapability_rtpPayloadType (&lctxt, &pvalue->rtpPayloadType);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* QOSMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245QOSMode (OOCTXT* pctxt, H245QOSMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* guaranteedQOS */
case 1:
/* NULL */
break;
/* controlledLoad */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RSVPParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RSVPParameters (OOCTXT* pctxt, H245RSVPParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qosModePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.tokenRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.bucketSizePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.peakRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.minPolicedPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.maxPktSizePresent);
/* encode qosMode */
if (pvalue->m.qosModePresent) {
stat = asn1PE_H245QOSMode (pctxt, &pvalue->qosMode);
if (stat != ASN_OK) return stat;
}
/* encode tokenRate */
if (pvalue->m.tokenRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->tokenRate, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode bucketSize */
if (pvalue->m.bucketSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->bucketSize, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode peakRate */
if (pvalue->m.peakRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->peakRate, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode minPoliced */
if (pvalue->m.minPolicedPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->minPoliced, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode maxPktSize */
if (pvalue->m.maxPktSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->maxPktSize, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* ATMParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ATMParameters (OOCTXT* pctxt, H245ATMParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maxNTUSize */
stat = encodeConsUnsigned (pctxt, pvalue->maxNTUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode atmUBR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->atmUBR);
if (stat != ASN_OK) return stat;
/* encode atmrtVBR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->atmrtVBR);
if (stat != ASN_OK) return stat;
/* encode atmnrtVBR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->atmnrtVBR);
if (stat != ASN_OK) return stat;
/* encode atmABR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->atmABR);
if (stat != ASN_OK) return stat;
/* encode atmCBR */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->atmCBR);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* QOSCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245QOSCapability (OOCTXT* pctxt, H245QOSCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardDataPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rsvpParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.atmParametersPresent);
/* encode nonStandardData */
if (pvalue->m.nonStandardDataPresent) {
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandardData);
if (stat != ASN_OK) return stat;
}
/* encode rsvpParameters */
if (pvalue->m.rsvpParametersPresent) {
stat = asn1PE_H245RSVPParameters (pctxt, &pvalue->rsvpParameters);
if (stat != ASN_OK) return stat;
}
/* encode atmParameters */
if (pvalue->m.atmParametersPresent) {
stat = asn1PE_H245ATMParameters (pctxt, &pvalue->atmParameters);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* TransportCapability_qOSCapabilities */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TransportCapability_qOSCapabilities (OOCTXT* pctxt, H245TransportCapability_qOSCapabilities* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245QOSCapability (pctxt, ((H245QOSCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MediaTransportType_atm_AAL5_compressed */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaTransportType_atm_AAL5_compressed (OOCTXT* pctxt, H245MediaTransportType_atm_AAL5_compressed* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode variable_delta */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->variable_delta);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MediaTransportType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaTransportType (OOCTXT* pctxt, H245MediaTransportType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* ip_UDP */
case 1:
/* NULL */
break;
/* ip_TCP */
case 2:
/* NULL */
break;
/* atm_AAL5_UNIDIR */
case 3:
/* NULL */
break;
/* atm_AAL5_BIDIR */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* atm_AAL5_compressed */
case 5:
stat = asn1PE_H245MediaTransportType_atm_AAL5_compressed (&lctxt, pvalue->u.atm_AAL5_compressed);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MediaChannelCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaChannelCapability (OOCTXT* pctxt, H245MediaChannelCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaTransportPresent);
/* encode mediaTransport */
if (pvalue->m.mediaTransportPresent) {
stat = asn1PE_H245MediaTransportType (pctxt, &pvalue->mediaTransport);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* TransportCapability_mediaChannelCapabilities */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TransportCapability_mediaChannelCapabilities (OOCTXT* pctxt, H245TransportCapability_mediaChannelCapabilities* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MediaChannelCapability (pctxt, ((H245MediaChannelCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* TransportCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TransportCapability (OOCTXT* pctxt, H245TransportCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qOSCapabilitiesPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaChannelCapabilitiesPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
/* encode qOSCapabilities */
if (pvalue->m.qOSCapabilitiesPresent) {
stat = asn1PE_H245TransportCapability_qOSCapabilities (pctxt, &pvalue->qOSCapabilities);
if (stat != ASN_OK) return stat;
}
/* encode mediaChannelCapabilities */
if (pvalue->m.mediaChannelCapabilitiesPresent) {
stat = asn1PE_H245TransportCapability_mediaChannelCapabilities (pctxt, &pvalue->mediaChannelCapabilities);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyFrameMapping_frameSequence */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyFrameMapping_frameSequence (OOCTXT* pctxt, H245RTPH263VideoRedundancyFrameMapping_frameSequence* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = encodeConsUnsigned (pctxt, pvalue->elem[xx1], 0U, 255U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyFrameMapping */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyFrameMapping (OOCTXT* pctxt, H245RTPH263VideoRedundancyFrameMapping* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode threadNumber */
stat = encodeConsUnsigned (pctxt, pvalue->threadNumber, 0U, 15U);
if (stat != ASN_OK) return stat;
/* encode frameSequence */
stat = asn1PE_H245RTPH263VideoRedundancyFrameMapping_frameSequence (pctxt, &pvalue->frameSequence);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyEncoding_frameToThreadMapping_cust */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom (OOCTXT* pctxt, H245RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245RTPH263VideoRedundancyFrameMapping (pctxt, ((H245RTPH263VideoRedundancyFrameMapping*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyEncoding_frameToThreadMapping */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyEncoding_frameToThreadMapping (OOCTXT* pctxt, H245RTPH263VideoRedundancyEncoding_frameToThreadMapping* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* roundrobin */
case 1:
/* NULL */
break;
/* custom */
case 2:
stat = asn1PE_H245RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom (pctxt, pvalue->u.custom);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyEncoding_containedThreads */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyEncoding_containedThreads (OOCTXT* pctxt, H245RTPH263VideoRedundancyEncoding_containedThreads* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = encodeConsUnsigned (pctxt, pvalue->elem[xx1], 0U, 15U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RTPH263VideoRedundancyEncoding */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RTPH263VideoRedundancyEncoding (OOCTXT* pctxt, H245RTPH263VideoRedundancyEncoding* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.containedThreadsPresent);
/* encode numberOfThreads */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfThreads, 1U, 16U);
if (stat != ASN_OK) return stat;
/* encode framesBetweenSyncPoints */
stat = encodeConsUnsigned (pctxt, pvalue->framesBetweenSyncPoints, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode frameToThreadMapping */
stat = asn1PE_H245RTPH263VideoRedundancyEncoding_frameToThreadMapping (pctxt, &pvalue->frameToThreadMapping);
if (stat != ASN_OK) return stat;
/* encode containedThreads */
if (pvalue->m.containedThreadsPresent) {
stat = asn1PE_H245RTPH263VideoRedundancyEncoding_containedThreads (pctxt, &pvalue->containedThreads);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingMethod */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingMethod (OOCTXT* pctxt, H245RedundancyEncodingMethod* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* rtpAudioRedundancyEncoding */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* rtpH263VideoRedundancyEncoding */
case 3:
stat = asn1PE_H245RTPH263VideoRedundancyEncoding (&lctxt, pvalue->u.rtpH263VideoRedundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* CapabilityTableEntryNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityTableEntryNumber (OOCTXT* pctxt, H245CapabilityTableEntryNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 1U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingCapability_secondaryEncoding */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingCapability_secondaryEncoding (OOCTXT* pctxt, H245RedundancyEncodingCapability_secondaryEncoding* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingCapability (OOCTXT* pctxt, H245RedundancyEncodingCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.secondaryEncodingPresent);
/* encode redundancyEncodingMethod */
stat = asn1PE_H245RedundancyEncodingMethod (pctxt, &pvalue->redundancyEncodingMethod);
if (stat != ASN_OK) return stat;
/* encode primaryEncoding */
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->primaryEncoding);
if (stat != ASN_OK) return stat;
/* encode secondaryEncoding */
if (pvalue->m.secondaryEncodingPresent) {
stat = asn1PE_H245RedundancyEncodingCapability_secondaryEncoding (pctxt, &pvalue->secondaryEncoding);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H2250Capability_redundancyEncodingCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250Capability_redundancyEncodingCapability (OOCTXT* pctxt, H245H2250Capability_redundancyEncodingCapability* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245RedundancyEncodingCapability (pctxt, ((H245RedundancyEncodingCapability*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* H2250Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250Capability (OOCTXT* pctxt, H245H2250Capability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.transportCapabilityPresent ||
pvalue->m.redundancyEncodingCapabilityPresent ||
pvalue->m.logicalChannelSwitchingCapabilityPresent ||
pvalue->m.t120DynamicPortCapabilityPresent);
encodeBit (pctxt, extbit);
/* encode maximumAudioDelayJitter */
stat = encodeConsUnsigned (pctxt, pvalue->maximumAudioDelayJitter, 0U, 1023U);
if (stat != ASN_OK) return stat;
/* encode receiveMultipointCapability */
stat = asn1PE_H245MultipointCapability (pctxt, &pvalue->receiveMultipointCapability);
if (stat != ASN_OK) return stat;
/* encode transmitMultipointCapability */
stat = asn1PE_H245MultipointCapability (pctxt, &pvalue->transmitMultipointCapability);
if (stat != ASN_OK) return stat;
/* encode receiveAndTransmitMultipointCapability */
stat = asn1PE_H245MultipointCapability (pctxt, &pvalue->receiveAndTransmitMultipointCapability);
if (stat != ASN_OK) return stat;
/* encode mcCapability */
stat = asn1PE_H245H2250Capability_mcCapability (pctxt, &pvalue->mcCapability);
if (stat != ASN_OK) return stat;
/* encode rtcpVideoControlCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->rtcpVideoControlCapability);
if (stat != ASN_OK) return stat;
/* encode mediaPacketizationCapability */
stat = asn1PE_H245MediaPacketizationCapability (pctxt, &pvalue->mediaPacketizationCapability);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 3);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.transportCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.redundancyEncodingCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.logicalChannelSwitchingCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t120DynamicPortCapabilityPresent);
/* encode extension elements */
if (pvalue->m.transportCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245TransportCapability (&lctxt, &pvalue->transportCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.redundancyEncodingCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H2250Capability_redundancyEncodingCapability (&lctxt, &pvalue->redundancyEncodingCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.logicalChannelSwitchingCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->logicalChannelSwitchingCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.t120DynamicPortCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->t120DynamicPortCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexCapability (OOCTXT* pctxt, H245MultiplexCapability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* h222Capability */
case 2:
stat = asn1PE_H245H222Capability (pctxt, pvalue->u.h222Capability);
if (stat != ASN_OK) return stat;
break;
/* h223Capability */
case 3:
stat = asn1PE_H245H223Capability (pctxt, pvalue->u.h223Capability);
if (stat != ASN_OK) return stat;
break;
/* v76Capability */
case 4:
stat = asn1PE_H245V76Capability (pctxt, pvalue->u.v76Capability);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h2250Capability */
case 5:
stat = asn1PE_H245H2250Capability (&lctxt, pvalue->u.h2250Capability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericMultiplexCapability */
case 6:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericMultiplexCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H261VideoCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H261VideoCapability (OOCTXT* pctxt, H245H261VideoCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.videoBadMBsCapPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cifMPIPresent);
/* encode qcifMPI */
if (pvalue->m.qcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->qcifMPI, 1U, 4U);
if (stat != ASN_OK) return stat;
}
/* encode cifMPI */
if (pvalue->m.cifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cifMPI, 1U, 4U);
if (stat != ASN_OK) return stat;
}
/* encode temporalSpatialTradeOffCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->temporalSpatialTradeOffCapability);
if (stat != ASN_OK) return stat;
/* encode maxBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->maxBitRate, 1U, 19200U);
if (stat != ASN_OK) return stat;
/* encode stillImageTransmission */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->stillImageTransmission);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBadMBsCapPresent);
/* encode extension elements */
if (pvalue->m.videoBadMBsCapPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->videoBadMBsCap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H262VideoCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H262VideoCapability (OOCTXT* pctxt, H245H262VideoCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.videoBadMBsCapPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.vbvBufferSizePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.samplesPerLinePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.linesPerFramePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.framesPerSecondPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.luminanceSampleRatePresent);
/* encode profileAndLevel_SPatML */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_SPatML);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_MPatLL */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_MPatLL);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_MPatML */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_MPatML);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_MPatH_14 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_MPatH_14);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_MPatHL */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_MPatHL);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_SNRatLL */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_SNRatLL);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_SNRatML */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_SNRatML);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_SpatialatH_14 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_SpatialatH_14);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_HPatML */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_HPatML);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_HPatH_14 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_HPatH_14);
if (stat != ASN_OK) return stat;
/* encode profileAndLevel_HPatHL */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->profileAndLevel_HPatHL);
if (stat != ASN_OK) return stat;
/* encode videoBitRate */
if (pvalue->m.videoBitRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->videoBitRate, 0U, 1073741823U);
if (stat != ASN_OK) return stat;
}
/* encode vbvBufferSize */
if (pvalue->m.vbvBufferSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->vbvBufferSize, 0U, 262143U);
if (stat != ASN_OK) return stat;
}
/* encode samplesPerLine */
if (pvalue->m.samplesPerLinePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerLine, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode linesPerFrame */
if (pvalue->m.linesPerFramePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->linesPerFrame, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode framesPerSecond */
if (pvalue->m.framesPerSecondPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->framesPerSecond, 0U, 15U);
if (stat != ASN_OK) return stat;
}
/* encode luminanceSampleRate */
if (pvalue->m.luminanceSampleRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->luminanceSampleRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBadMBsCapPresent);
/* encode extension elements */
if (pvalue->m.videoBadMBsCapPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->videoBadMBsCap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* TransparencyParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TransparencyParameters (OOCTXT* pctxt, H245TransparencyParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode presentationOrder */
stat = encodeConsUnsigned (pctxt, pvalue->presentationOrder, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode offset_x */
stat = encodeConsInteger (pctxt, pvalue->offset_x, -262144, 262143);
if (stat != ASN_OK) return stat;
/* encode offset_y */
stat = encodeConsInteger (pctxt, pvalue->offset_y, -262144, 262143);
if (stat != ASN_OK) return stat;
/* encode scale_x */
stat = encodeConsUnsigned (pctxt, pvalue->scale_x, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode scale_y */
stat = encodeConsUnsigned (pctxt, pvalue->scale_y, 1U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RefPictureSelection_additionalPictureMemory */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RefPictureSelection_additionalPictureMemory (OOCTXT* pctxt, H245RefPictureSelection_additionalPictureMemory* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sqcifAdditionalPictureMemoryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qcifAdditionalPictureMemoryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cifAdditionalPictureMemoryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif4AdditionalPictureMemoryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif16AdditionalPictureMemoryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.bigCpfAdditionalPictureMemoryPresent);
/* encode sqcifAdditionalPictureMemory */
if (pvalue->m.sqcifAdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sqcifAdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode qcifAdditionalPictureMemory */
if (pvalue->m.qcifAdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->qcifAdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode cifAdditionalPictureMemory */
if (pvalue->m.cifAdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cifAdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode cif4AdditionalPictureMemory */
if (pvalue->m.cif4AdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif4AdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode cif16AdditionalPictureMemory */
if (pvalue->m.cif16AdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif16AdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode bigCpfAdditionalPictureMemory */
if (pvalue->m.bigCpfAdditionalPictureMemoryPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->bigCpfAdditionalPictureMemory, 1U, 256U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RefPictureSelection_videoBackChannelSend */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RefPictureSelection_videoBackChannelSend (OOCTXT* pctxt, H245RefPictureSelection_videoBackChannelSend* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* none */
case 1:
/* NULL */
break;
/* ackMessageOnly */
case 2:
/* NULL */
break;
/* nackMessageOnly */
case 3:
/* NULL */
break;
/* ackOrNackMessageOnly */
case 4:
/* NULL */
break;
/* ackAndNackMessage */
case 5:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RefPictureSelection_enhancedReferencePicSelect_subPictur */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters (OOCTXT* pctxt, H245RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode mpuHorizMBs */
stat = encodeConsUnsigned (pctxt, pvalue->mpuHorizMBs, 1U, 128U);
if (stat != ASN_OK) return stat;
/* encode mpuVertMBs */
stat = encodeConsUnsigned (pctxt, pvalue->mpuVertMBs, 1U, 72U);
if (stat != ASN_OK) return stat;
/* encode mpuTotalNumber */
stat = encodeConsUnsigned (pctxt, pvalue->mpuTotalNumber, 1U, 65536U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RefPictureSelection_enhancedReferencePicSelect */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RefPictureSelection_enhancedReferencePicSelect (OOCTXT* pctxt, H245RefPictureSelection_enhancedReferencePicSelect* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.subPictureRemovalParametersPresent);
/* encode subPictureRemovalParameters */
if (pvalue->m.subPictureRemovalParametersPresent) {
stat = asn1PE_H245RefPictureSelection_enhancedReferencePicSelect_subPictureRemovalParameters (pctxt, &pvalue->subPictureRemovalParameters);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RefPictureSelection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RefPictureSelection (OOCTXT* pctxt, H245RefPictureSelection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.enhancedReferencePicSelectPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.additionalPictureMemoryPresent);
/* encode additionalPictureMemory */
if (pvalue->m.additionalPictureMemoryPresent) {
stat = asn1PE_H245RefPictureSelection_additionalPictureMemory (pctxt, &pvalue->additionalPictureMemory);
if (stat != ASN_OK) return stat;
}
/* encode videoMux */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoMux);
if (stat != ASN_OK) return stat;
/* encode videoBackChannelSend */
stat = asn1PE_H245RefPictureSelection_videoBackChannelSend (pctxt, &pvalue->videoBackChannelSend);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.enhancedReferencePicSelectPresent);
/* encode extension elements */
if (pvalue->m.enhancedReferencePicSelectPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245RefPictureSelection_enhancedReferencePicSelect (&lctxt, &pvalue->enhancedReferencePicSelect);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureClockFrequency */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureClockFrequency (OOCTXT* pctxt, H245CustomPictureClockFrequency* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sqcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif4MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif16MPIPresent);
/* encode clockConversionCode */
stat = encodeConsUnsigned (pctxt, pvalue->clockConversionCode, 1000U, 1001U);
if (stat != ASN_OK) return stat;
/* encode clockDivisor */
stat = encodeConsUnsigned (pctxt, pvalue->clockDivisor, 1U, 127U);
if (stat != ASN_OK) return stat;
/* encode sqcifMPI */
if (pvalue->m.sqcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sqcifMPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
}
/* encode qcifMPI */
if (pvalue->m.qcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->qcifMPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
}
/* encode cifMPI */
if (pvalue->m.cifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cifMPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
}
/* encode cif4MPI */
if (pvalue->m.cif4MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif4MPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
}
/* encode cif16MPI */
if (pvalue->m.cif16MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif16MPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H263Options_customPictureClockFrequency */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263Options_customPictureClockFrequency (OOCTXT* pctxt, H245H263Options_customPictureClockFrequency* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CustomPictureClockFrequency (pctxt, ((H245CustomPictureClockFrequency*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_mPI_customPCF_element */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_mPI_customPCF_element (OOCTXT* pctxt, H245CustomPictureFormat_mPI_customPCF_element* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode clockConversionCode */
stat = encodeConsUnsigned (pctxt, pvalue->clockConversionCode, 1000U, 1001U);
if (stat != ASN_OK) return stat;
/* encode clockDivisor */
stat = encodeConsUnsigned (pctxt, pvalue->clockDivisor, 1U, 127U);
if (stat != ASN_OK) return stat;
/* encode customMPI */
stat = encodeConsUnsigned (pctxt, pvalue->customMPI, 1U, 2048U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_mPI_customPCF */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_mPI_customPCF (OOCTXT* pctxt, H245CustomPictureFormat_mPI_customPCF* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CustomPictureFormat_mPI_customPCF_element (pctxt, ((H245CustomPictureFormat_mPI_customPCF_element*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_mPI */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_mPI (OOCTXT* pctxt, H245CustomPictureFormat_mPI* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.standardMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.customPCFPresent);
/* encode standardMPI */
if (pvalue->m.standardMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->standardMPI, 1U, 31U);
if (stat != ASN_OK) return stat;
}
/* encode customPCF */
if (pvalue->m.customPCFPresent) {
stat = asn1PE_H245CustomPictureFormat_mPI_customPCF (pctxt, &pvalue->customPCF);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_pixelAspectInformation_pixelAspectCo */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_pixelAspectInformation_pixelAspectCode (OOCTXT* pctxt, H245CustomPictureFormat_pixelAspectInformation_pixelAspectCode* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 14, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = encodeConsUnsigned (pctxt, pvalue->elem[xx1], 1U, 14U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_pixelAspectInformation_extendedPAR_e */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_pixelAspectInformation_extendedPAR_element (OOCTXT* pctxt, H245CustomPictureFormat_pixelAspectInformation_extendedPAR_element* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode width */
stat = encodeConsUnsigned (pctxt, pvalue->width, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode height */
stat = encodeConsUnsigned (pctxt, pvalue->height, 1U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_pixelAspectInformation_extendedPAR */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_pixelAspectInformation_extendedPAR (OOCTXT* pctxt, H245CustomPictureFormat_pixelAspectInformation_extendedPAR* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CustomPictureFormat_pixelAspectInformation_extendedPAR_element (pctxt, ((H245CustomPictureFormat_pixelAspectInformation_extendedPAR_element*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat_pixelAspectInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat_pixelAspectInformation (OOCTXT* pctxt, H245CustomPictureFormat_pixelAspectInformation* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* anyPixelAspectRatio */
case 1:
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->u.anyPixelAspectRatio);
if (stat != ASN_OK) return stat;
break;
/* pixelAspectCode */
case 2:
stat = asn1PE_H245CustomPictureFormat_pixelAspectInformation_pixelAspectCode (pctxt, pvalue->u.pixelAspectCode);
if (stat != ASN_OK) return stat;
break;
/* extendedPAR */
case 3:
stat = asn1PE_H245CustomPictureFormat_pixelAspectInformation_extendedPAR (pctxt, pvalue->u.extendedPAR);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* CustomPictureFormat */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CustomPictureFormat (OOCTXT* pctxt, H245CustomPictureFormat* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maxCustomPictureWidth */
stat = encodeConsUnsigned (pctxt, pvalue->maxCustomPictureWidth, 1U, 2048U);
if (stat != ASN_OK) return stat;
/* encode maxCustomPictureHeight */
stat = encodeConsUnsigned (pctxt, pvalue->maxCustomPictureHeight, 1U, 2048U);
if (stat != ASN_OK) return stat;
/* encode minCustomPictureWidth */
stat = encodeConsUnsigned (pctxt, pvalue->minCustomPictureWidth, 1U, 2048U);
if (stat != ASN_OK) return stat;
/* encode minCustomPictureHeight */
stat = encodeConsUnsigned (pctxt, pvalue->minCustomPictureHeight, 1U, 2048U);
if (stat != ASN_OK) return stat;
/* encode mPI */
stat = asn1PE_H245CustomPictureFormat_mPI (pctxt, &pvalue->mPI);
if (stat != ASN_OK) return stat;
/* encode pixelAspectInformation */
stat = asn1PE_H245CustomPictureFormat_pixelAspectInformation (pctxt, &pvalue->pixelAspectInformation);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H263Options_customPictureFormat */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263Options_customPictureFormat (OOCTXT* pctxt, H245H263Options_customPictureFormat* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CustomPictureFormat (pctxt, ((H245CustomPictureFormat*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* H263Version3Options */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263Version3Options (OOCTXT* pctxt, H245H263Version3Options* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode dataPartitionedSlices */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dataPartitionedSlices);
if (stat != ASN_OK) return stat;
/* encode fixedPointIDCT0 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fixedPointIDCT0);
if (stat != ASN_OK) return stat;
/* encode interlacedFields */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->interlacedFields);
if (stat != ASN_OK) return stat;
/* encode currentPictureHeaderRepetition */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->currentPictureHeaderRepetition);
if (stat != ASN_OK) return stat;
/* encode previousPictureHeaderRepetition */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->previousPictureHeaderRepetition);
if (stat != ASN_OK) return stat;
/* encode nextPictureHeaderRepetition */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->nextPictureHeaderRepetition);
if (stat != ASN_OK) return stat;
/* encode pictureNumber */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->pictureNumber);
if (stat != ASN_OK) return stat;
/* encode spareReferencePictures */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->spareReferencePictures);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H263ModeComboFlags */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263ModeComboFlags (OOCTXT* pctxt, H245H263ModeComboFlags* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.enhancedReferencePicSelectPresent ||
pvalue->m.h263Version3OptionsPresent);
encodeBit (pctxt, extbit);
/* encode unrestrictedVector */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unrestrictedVector);
if (stat != ASN_OK) return stat;
/* encode arithmeticCoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->arithmeticCoding);
if (stat != ASN_OK) return stat;
/* encode advancedPrediction */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->advancedPrediction);
if (stat != ASN_OK) return stat;
/* encode pbFrames */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->pbFrames);
if (stat != ASN_OK) return stat;
/* encode advancedIntraCodingMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->advancedIntraCodingMode);
if (stat != ASN_OK) return stat;
/* encode deblockingFilterMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->deblockingFilterMode);
if (stat != ASN_OK) return stat;
/* encode unlimitedMotionVectors */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unlimitedMotionVectors);
if (stat != ASN_OK) return stat;
/* encode slicesInOrder_NonRect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesInOrder_NonRect);
if (stat != ASN_OK) return stat;
/* encode slicesInOrder_Rect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesInOrder_Rect);
if (stat != ASN_OK) return stat;
/* encode slicesNoOrder_NonRect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesNoOrder_NonRect);
if (stat != ASN_OK) return stat;
/* encode slicesNoOrder_Rect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesNoOrder_Rect);
if (stat != ASN_OK) return stat;
/* encode improvedPBFramesMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->improvedPBFramesMode);
if (stat != ASN_OK) return stat;
/* encode referencePicSelect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->referencePicSelect);
if (stat != ASN_OK) return stat;
/* encode dynamicPictureResizingByFour */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicPictureResizingByFour);
if (stat != ASN_OK) return stat;
/* encode dynamicPictureResizingSixteenthPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicPictureResizingSixteenthPel);
if (stat != ASN_OK) return stat;
/* encode dynamicWarpingHalfPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicWarpingHalfPel);
if (stat != ASN_OK) return stat;
/* encode dynamicWarpingSixteenthPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicWarpingSixteenthPel);
if (stat != ASN_OK) return stat;
/* encode reducedResolutionUpdate */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->reducedResolutionUpdate);
if (stat != ASN_OK) return stat;
/* encode independentSegmentDecoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->independentSegmentDecoding);
if (stat != ASN_OK) return stat;
/* encode alternateInterVLCMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alternateInterVLCMode);
if (stat != ASN_OK) return stat;
/* encode modifiedQuantizationMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->modifiedQuantizationMode);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.enhancedReferencePicSelectPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h263Version3OptionsPresent);
/* encode extension elements */
if (pvalue->m.enhancedReferencePicSelectPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->enhancedReferencePicSelect);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h263Version3OptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H263Version3Options (&lctxt, &pvalue->h263Version3Options);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H263VideoModeCombos_h263VideoCoupledModes */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263VideoModeCombos_h263VideoCoupledModes (OOCTXT* pctxt, H245H263VideoModeCombos_h263VideoCoupledModes* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245H263ModeComboFlags (pctxt, ((H245H263ModeComboFlags*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* H263VideoModeCombos */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263VideoModeCombos (OOCTXT* pctxt, H245H263VideoModeCombos* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode h263VideoUncoupledModes */
stat = asn1PE_H245H263ModeComboFlags (pctxt, &pvalue->h263VideoUncoupledModes);
if (stat != ASN_OK) return stat;
/* encode h263VideoCoupledModes */
stat = asn1PE_H245H263VideoModeCombos_h263VideoCoupledModes (pctxt, &pvalue->h263VideoCoupledModes);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H263Options_modeCombos */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263Options_modeCombos (OOCTXT* pctxt, H245H263Options_modeCombos* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245H263VideoModeCombos (pctxt, ((H245H263VideoModeCombos*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* H263Options */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263Options (OOCTXT* pctxt, H245H263Options* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.videoBadMBsCapPresent ||
pvalue->m.h263Version3OptionsPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.transparencyParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.refPictureSelectionPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.customPictureClockFrequencyPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.customPictureFormatPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.modeCombosPresent);
/* encode advancedIntraCodingMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->advancedIntraCodingMode);
if (stat != ASN_OK) return stat;
/* encode deblockingFilterMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->deblockingFilterMode);
if (stat != ASN_OK) return stat;
/* encode improvedPBFramesMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->improvedPBFramesMode);
if (stat != ASN_OK) return stat;
/* encode unlimitedMotionVectors */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unlimitedMotionVectors);
if (stat != ASN_OK) return stat;
/* encode fullPictureFreeze */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fullPictureFreeze);
if (stat != ASN_OK) return stat;
/* encode partialPictureFreezeAndRelease */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partialPictureFreezeAndRelease);
if (stat != ASN_OK) return stat;
/* encode resizingPartPicFreezeAndRelease */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->resizingPartPicFreezeAndRelease);
if (stat != ASN_OK) return stat;
/* encode fullPictureSnapshot */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fullPictureSnapshot);
if (stat != ASN_OK) return stat;
/* encode partialPictureSnapshot */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partialPictureSnapshot);
if (stat != ASN_OK) return stat;
/* encode videoSegmentTagging */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->videoSegmentTagging);
if (stat != ASN_OK) return stat;
/* encode progressiveRefinement */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->progressiveRefinement);
if (stat != ASN_OK) return stat;
/* encode dynamicPictureResizingByFour */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicPictureResizingByFour);
if (stat != ASN_OK) return stat;
/* encode dynamicPictureResizingSixteenthPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicPictureResizingSixteenthPel);
if (stat != ASN_OK) return stat;
/* encode dynamicWarpingHalfPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicWarpingHalfPel);
if (stat != ASN_OK) return stat;
/* encode dynamicWarpingSixteenthPel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->dynamicWarpingSixteenthPel);
if (stat != ASN_OK) return stat;
/* encode independentSegmentDecoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->independentSegmentDecoding);
if (stat != ASN_OK) return stat;
/* encode slicesInOrder_NonRect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesInOrder_NonRect);
if (stat != ASN_OK) return stat;
/* encode slicesInOrder_Rect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesInOrder_Rect);
if (stat != ASN_OK) return stat;
/* encode slicesNoOrder_NonRect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesNoOrder_NonRect);
if (stat != ASN_OK) return stat;
/* encode slicesNoOrder_Rect */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->slicesNoOrder_Rect);
if (stat != ASN_OK) return stat;
/* encode alternateInterVLCMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alternateInterVLCMode);
if (stat != ASN_OK) return stat;
/* encode modifiedQuantizationMode */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->modifiedQuantizationMode);
if (stat != ASN_OK) return stat;
/* encode reducedResolutionUpdate */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->reducedResolutionUpdate);
if (stat != ASN_OK) return stat;
/* encode transparencyParameters */
if (pvalue->m.transparencyParametersPresent) {
stat = asn1PE_H245TransparencyParameters (pctxt, &pvalue->transparencyParameters);
if (stat != ASN_OK) return stat;
}
/* encode separateVideoBackChannel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->separateVideoBackChannel);
if (stat != ASN_OK) return stat;
/* encode refPictureSelection */
if (pvalue->m.refPictureSelectionPresent) {
stat = asn1PE_H245RefPictureSelection (pctxt, &pvalue->refPictureSelection);
if (stat != ASN_OK) return stat;
}
/* encode customPictureClockFrequency */
if (pvalue->m.customPictureClockFrequencyPresent) {
stat = asn1PE_H245H263Options_customPictureClockFrequency (pctxt, &pvalue->customPictureClockFrequency);
if (stat != ASN_OK) return stat;
}
/* encode customPictureFormat */
if (pvalue->m.customPictureFormatPresent) {
stat = asn1PE_H245H263Options_customPictureFormat (pctxt, &pvalue->customPictureFormat);
if (stat != ASN_OK) return stat;
}
/* encode modeCombos */
if (pvalue->m.modeCombosPresent) {
stat = asn1PE_H245H263Options_modeCombos (pctxt, &pvalue->modeCombos);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBadMBsCapPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h263Version3OptionsPresent);
/* encode extension elements */
if (pvalue->m.videoBadMBsCapPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->videoBadMBsCap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h263Version3OptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H263Version3Options (&lctxt, &pvalue->h263Version3Options);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* EnhancementOptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EnhancementOptions (OOCTXT* pctxt, H245EnhancementOptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sqcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif4MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif16MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowSqcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowQcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCif4MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCif16MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h263OptionsPresent);
/* encode sqcifMPI */
if (pvalue->m.sqcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sqcifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode qcifMPI */
if (pvalue->m.qcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->qcifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cifMPI */
if (pvalue->m.cifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cif4MPI */
if (pvalue->m.cif4MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif4MPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cif16MPI */
if (pvalue->m.cif16MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif16MPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode maxBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->maxBitRate, 1U, 192400U);
if (stat != ASN_OK) return stat;
/* encode unrestrictedVector */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unrestrictedVector);
if (stat != ASN_OK) return stat;
/* encode arithmeticCoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->arithmeticCoding);
if (stat != ASN_OK) return stat;
/* encode temporalSpatialTradeOffCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->temporalSpatialTradeOffCapability);
if (stat != ASN_OK) return stat;
/* encode slowSqcifMPI */
if (pvalue->m.slowSqcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->slowSqcifMPI, 1U, 3600U);
if (stat != ASN_OK) return stat;
}
/* encode slowQcifMPI */
if (pvalue->m.slowQcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->slowQcifMPI, 1U, 3600U);
if (stat != ASN_OK) return stat;
}
/* encode slowCifMPI */
if (pvalue->m.slowCifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->slowCifMPI, 1U, 3600U);
if (stat != ASN_OK) return stat;
}
/* encode slowCif4MPI */
if (pvalue->m.slowCif4MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->slowCif4MPI, 1U, 3600U);
if (stat != ASN_OK) return stat;
}
/* encode slowCif16MPI */
if (pvalue->m.slowCif16MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->slowCif16MPI, 1U, 3600U);
if (stat != ASN_OK) return stat;
}
/* encode errorCompensation */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->errorCompensation);
if (stat != ASN_OK) return stat;
/* encode h263Options */
if (pvalue->m.h263OptionsPresent) {
stat = asn1PE_H245H263Options (pctxt, &pvalue->h263Options);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* EnhancementLayerInfo_snrEnhancement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EnhancementLayerInfo_snrEnhancement (OOCTXT* pctxt, H245EnhancementLayerInfo_snrEnhancement* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 14, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245EnhancementOptions (pctxt, ((H245EnhancementOptions*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* EnhancementLayerInfo_spatialEnhancement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EnhancementLayerInfo_spatialEnhancement (OOCTXT* pctxt, H245EnhancementLayerInfo_spatialEnhancement* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 14, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245EnhancementOptions (pctxt, ((H245EnhancementOptions*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* BEnhancementParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245BEnhancementParameters (OOCTXT* pctxt, H245BEnhancementParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode enhancementOptions */
stat = asn1PE_H245EnhancementOptions (pctxt, &pvalue->enhancementOptions);
if (stat != ASN_OK) return stat;
/* encode numberOfBPictures */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfBPictures, 1U, 64U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EnhancementLayerInfo_bPictureEnhancement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EnhancementLayerInfo_bPictureEnhancement (OOCTXT* pctxt, H245EnhancementLayerInfo_bPictureEnhancement* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 14, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245BEnhancementParameters (pctxt, ((H245BEnhancementParameters*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* EnhancementLayerInfo */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EnhancementLayerInfo (OOCTXT* pctxt, H245EnhancementLayerInfo* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.snrEnhancementPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.spatialEnhancementPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.bPictureEnhancementPresent);
/* encode baseBitRateConstrained */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->baseBitRateConstrained);
if (stat != ASN_OK) return stat;
/* encode snrEnhancement */
if (pvalue->m.snrEnhancementPresent) {
stat = asn1PE_H245EnhancementLayerInfo_snrEnhancement (pctxt, &pvalue->snrEnhancement);
if (stat != ASN_OK) return stat;
}
/* encode spatialEnhancement */
if (pvalue->m.spatialEnhancementPresent) {
stat = asn1PE_H245EnhancementLayerInfo_spatialEnhancement (pctxt, &pvalue->spatialEnhancement);
if (stat != ASN_OK) return stat;
}
/* encode bPictureEnhancement */
if (pvalue->m.bPictureEnhancementPresent) {
stat = asn1PE_H245EnhancementLayerInfo_bPictureEnhancement (pctxt, &pvalue->bPictureEnhancement);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H263VideoCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263VideoCapability (OOCTXT* pctxt, H245H263VideoCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.slowSqcifMPIPresent ||
pvalue->m.slowQcifMPIPresent ||
pvalue->m.slowCifMPIPresent ||
pvalue->m.slowCif4MPIPresent ||
pvalue->m.slowCif16MPIPresent ||
pvalue->m.errorCompensationPresent ||
pvalue->m.enhancementLayerInfoPresent ||
pvalue->m.h263OptionsPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sqcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif4MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.cif16MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.hrd_BPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.bppMaxKbPresent);
/* encode sqcifMPI */
if (pvalue->m.sqcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sqcifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode qcifMPI */
if (pvalue->m.qcifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->qcifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cifMPI */
if (pvalue->m.cifMPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cifMPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cif4MPI */
if (pvalue->m.cif4MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif4MPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode cif16MPI */
if (pvalue->m.cif16MPIPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->cif16MPI, 1U, 32U);
if (stat != ASN_OK) return stat;
}
/* encode maxBitRate */
stat = encodeConsUnsigned (pctxt, pvalue->maxBitRate, 1U, 192400U);
if (stat != ASN_OK) return stat;
/* encode unrestrictedVector */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unrestrictedVector);
if (stat != ASN_OK) return stat;
/* encode arithmeticCoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->arithmeticCoding);
if (stat != ASN_OK) return stat;
/* encode advancedPrediction */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->advancedPrediction);
if (stat != ASN_OK) return stat;
/* encode pbFrames */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->pbFrames);
if (stat != ASN_OK) return stat;
/* encode temporalSpatialTradeOffCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->temporalSpatialTradeOffCapability);
if (stat != ASN_OK) return stat;
/* encode hrd_B */
if (pvalue->m.hrd_BPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->hrd_B, 0U, 524287U);
if (stat != ASN_OK) return stat;
}
/* encode bppMaxKb */
if (pvalue->m.bppMaxKbPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->bppMaxKb, 0U, 65535U);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 7);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowSqcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowQcifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCifMPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCif4MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.slowCif16MPIPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.errorCompensationPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.enhancementLayerInfoPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h263OptionsPresent);
/* encode extension elements */
if (pvalue->m.slowSqcifMPIPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->slowSqcifMPI, 1U, 3600U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.slowQcifMPIPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->slowQcifMPI, 1U, 3600U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.slowCifMPIPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->slowCifMPI, 1U, 3600U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.slowCif4MPIPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->slowCif4MPI, 1U, 3600U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.slowCif16MPIPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->slowCif16MPI, 1U, 3600U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.errorCompensationPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->errorCompensation);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.enhancementLayerInfoPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245EnhancementLayerInfo (&lctxt, &pvalue->enhancementLayerInfo);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h263OptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H263Options (&lctxt, &pvalue->h263Options);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172VideoCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172VideoCapability (OOCTXT* pctxt, H245IS11172VideoCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.videoBadMBsCapPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.vbvBufferSizePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.samplesPerLinePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.linesPerFramePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.pictureRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.luminanceSampleRatePresent);
/* encode constrainedBitstream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->constrainedBitstream);
if (stat != ASN_OK) return stat;
/* encode videoBitRate */
if (pvalue->m.videoBitRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->videoBitRate, 0U, 1073741823U);
if (stat != ASN_OK) return stat;
}
/* encode vbvBufferSize */
if (pvalue->m.vbvBufferSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->vbvBufferSize, 0U, 262143U);
if (stat != ASN_OK) return stat;
}
/* encode samplesPerLine */
if (pvalue->m.samplesPerLinePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerLine, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode linesPerFrame */
if (pvalue->m.linesPerFramePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->linesPerFrame, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode pictureRate */
if (pvalue->m.pictureRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->pictureRate, 0U, 15U);
if (stat != ASN_OK) return stat;
}
/* encode luminanceSampleRate */
if (pvalue->m.luminanceSampleRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->luminanceSampleRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBadMBsCapPresent);
/* encode extension elements */
if (pvalue->m.videoBadMBsCapPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->videoBadMBsCap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* VideoCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VideoCapability (OOCTXT* pctxt, H245VideoCapability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* h261VideoCapability */
case 2:
stat = asn1PE_H245H261VideoCapability (pctxt, pvalue->u.h261VideoCapability);
if (stat != ASN_OK) return stat;
break;
/* h262VideoCapability */
case 3:
stat = asn1PE_H245H262VideoCapability (pctxt, pvalue->u.h262VideoCapability);
if (stat != ASN_OK) return stat;
break;
/* h263VideoCapability */
case 4:
stat = asn1PE_H245H263VideoCapability (pctxt, pvalue->u.h263VideoCapability);
if (stat != ASN_OK) return stat;
break;
/* is11172VideoCapability */
case 5:
stat = asn1PE_H245IS11172VideoCapability (pctxt, pvalue->u.is11172VideoCapability);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* genericVideoCapability */
case 6:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericVideoCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* AudioCapability_g7231 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioCapability_g7231 (OOCTXT* pctxt, H245AudioCapability_g7231* pvalue)
{
int stat = ASN_OK;
/* encode maxAl_sduAudioFrames */
stat = encodeConsUnsigned (pctxt, pvalue->maxAl_sduAudioFrames, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode silenceSuppression */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->silenceSuppression);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* IS11172AudioCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172AudioCapability (OOCTXT* pctxt, H245IS11172AudioCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioLayer1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer1);
if (stat != ASN_OK) return stat;
/* encode audioLayer2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer2);
if (stat != ASN_OK) return stat;
/* encode audioLayer3 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer3);
if (stat != ASN_OK) return stat;
/* encode audioSampling32k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling32k);
if (stat != ASN_OK) return stat;
/* encode audioSampling44k1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling44k1);
if (stat != ASN_OK) return stat;
/* encode audioSampling48k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling48k);
if (stat != ASN_OK) return stat;
/* encode singleChannel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->singleChannel);
if (stat != ASN_OK) return stat;
/* encode twoChannels */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->twoChannels);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 448U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* IS13818AudioCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS13818AudioCapability (OOCTXT* pctxt, H245IS13818AudioCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioLayer1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer1);
if (stat != ASN_OK) return stat;
/* encode audioLayer2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer2);
if (stat != ASN_OK) return stat;
/* encode audioLayer3 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioLayer3);
if (stat != ASN_OK) return stat;
/* encode audioSampling16k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling16k);
if (stat != ASN_OK) return stat;
/* encode audioSampling22k05 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling22k05);
if (stat != ASN_OK) return stat;
/* encode audioSampling24k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling24k);
if (stat != ASN_OK) return stat;
/* encode audioSampling32k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling32k);
if (stat != ASN_OK) return stat;
/* encode audioSampling44k1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling44k1);
if (stat != ASN_OK) return stat;
/* encode audioSampling48k */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioSampling48k);
if (stat != ASN_OK) return stat;
/* encode singleChannel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->singleChannel);
if (stat != ASN_OK) return stat;
/* encode twoChannels */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->twoChannels);
if (stat != ASN_OK) return stat;
/* encode threeChannels2_1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->threeChannels2_1);
if (stat != ASN_OK) return stat;
/* encode threeChannels3_0 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->threeChannels3_0);
if (stat != ASN_OK) return stat;
/* encode fourChannels2_0_2_0 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fourChannels2_0_2_0);
if (stat != ASN_OK) return stat;
/* encode fourChannels2_2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fourChannels2_2);
if (stat != ASN_OK) return stat;
/* encode fourChannels3_1 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fourChannels3_1);
if (stat != ASN_OK) return stat;
/* encode fiveChannels3_0_2_0 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fiveChannels3_0_2_0);
if (stat != ASN_OK) return stat;
/* encode fiveChannels3_2 */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->fiveChannels3_2);
if (stat != ASN_OK) return stat;
/* encode lowFrequencyEnhancement */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->lowFrequencyEnhancement);
if (stat != ASN_OK) return stat;
/* encode multilingual */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->multilingual);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 1130U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* G7231AnnexCCapability_g723AnnexCAudioMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245G7231AnnexCCapability_g723AnnexCAudioMode (OOCTXT* pctxt, H245G7231AnnexCCapability_g723AnnexCAudioMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode highRateMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->highRateMode0, 27U, 78U);
if (stat != ASN_OK) return stat;
/* encode highRateMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->highRateMode1, 27U, 78U);
if (stat != ASN_OK) return stat;
/* encode lowRateMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->lowRateMode0, 23U, 66U);
if (stat != ASN_OK) return stat;
/* encode lowRateMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->lowRateMode1, 23U, 66U);
if (stat != ASN_OK) return stat;
/* encode sidMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->sidMode0, 6U, 17U);
if (stat != ASN_OK) return stat;
/* encode sidMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->sidMode1, 6U, 17U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* G7231AnnexCCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245G7231AnnexCCapability (OOCTXT* pctxt, H245G7231AnnexCCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.g723AnnexCAudioModePresent);
/* encode maxAl_sduAudioFrames */
stat = encodeConsUnsigned (pctxt, pvalue->maxAl_sduAudioFrames, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode silenceSuppression */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->silenceSuppression);
if (stat != ASN_OK) return stat;
/* encode g723AnnexCAudioMode */
if (pvalue->m.g723AnnexCAudioModePresent) {
stat = asn1PE_H245G7231AnnexCCapability_g723AnnexCAudioMode (pctxt, &pvalue->g723AnnexCAudioMode);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* GSMAudioCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245GSMAudioCapability (OOCTXT* pctxt, H245GSMAudioCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioUnitSize */
stat = encodeConsUnsigned (pctxt, pvalue->audioUnitSize, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode comfortNoise */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->comfortNoise);
if (stat != ASN_OK) return stat;
/* encode scrambled */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->scrambled);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* G729Extensions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245G729Extensions (OOCTXT* pctxt, H245G729Extensions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.audioUnitPresent);
/* encode audioUnit */
if (pvalue->m.audioUnitPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->audioUnit, 1U, 256U);
if (stat != ASN_OK) return stat;
}
/* encode annexA */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexA);
if (stat != ASN_OK) return stat;
/* encode annexB */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexB);
if (stat != ASN_OK) return stat;
/* encode annexD */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexD);
if (stat != ASN_OK) return stat;
/* encode annexE */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexE);
if (stat != ASN_OK) return stat;
/* encode annexF */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexF);
if (stat != ASN_OK) return stat;
/* encode annexG */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexG);
if (stat != ASN_OK) return stat;
/* encode annexH */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->annexH);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VBDCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VBDCapability (OOCTXT* pctxt, H245VBDCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245AudioCapability (pctxt, (H245AudioCapability*)pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NoPTAudioTelephonyEventCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NoPTAudioTelephonyEventCapability (OOCTXT* pctxt, H245NoPTAudioTelephonyEventCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioTelephoneEvent */
stat = encodeVarWidthCharString (pctxt, pvalue->audioTelephoneEvent);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NoPTAudioToneCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NoPTAudioToneCapability (OOCTXT* pctxt, H245NoPTAudioToneCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* AudioCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioCapability (OOCTXT* pctxt, H245AudioCapability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 14);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 13);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* g711Alaw64k */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.g711Alaw64k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g711Alaw56k */
case 3:
stat = encodeConsUnsigned (pctxt, pvalue->u.g711Alaw56k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g711Ulaw64k */
case 4:
stat = encodeConsUnsigned (pctxt, pvalue->u.g711Ulaw64k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g711Ulaw56k */
case 5:
stat = encodeConsUnsigned (pctxt, pvalue->u.g711Ulaw56k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g722_64k */
case 6:
stat = encodeConsUnsigned (pctxt, pvalue->u.g722_64k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g722_56k */
case 7:
stat = encodeConsUnsigned (pctxt, pvalue->u.g722_56k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g722_48k */
case 8:
stat = encodeConsUnsigned (pctxt, pvalue->u.g722_48k, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g7231 */
case 9:
stat = asn1PE_H245AudioCapability_g7231 (pctxt, pvalue->u.g7231);
if (stat != ASN_OK) return stat;
break;
/* g728 */
case 10:
stat = encodeConsUnsigned (pctxt, pvalue->u.g728, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g729 */
case 11:
stat = encodeConsUnsigned (pctxt, pvalue->u.g729, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* g729AnnexA */
case 12:
stat = encodeConsUnsigned (pctxt, pvalue->u.g729AnnexA, 1U, 256U);
if (stat != ASN_OK) return stat;
break;
/* is11172AudioCapability */
case 13:
stat = asn1PE_H245IS11172AudioCapability (pctxt, pvalue->u.is11172AudioCapability);
if (stat != ASN_OK) return stat;
break;
/* is13818AudioCapability */
case 14:
stat = asn1PE_H245IS13818AudioCapability (pctxt, pvalue->u.is13818AudioCapability);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 15);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* g729wAnnexB */
case 15:
stat = encodeConsUnsigned (&lctxt, pvalue->u.g729wAnnexB, 1U, 256U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g729AnnexAwAnnexB */
case 16:
stat = encodeConsUnsigned (&lctxt, pvalue->u.g729AnnexAwAnnexB, 1U, 256U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g7231AnnexCCapability */
case 17:
stat = asn1PE_H245G7231AnnexCCapability (&lctxt, pvalue->u.g7231AnnexCCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmFullRate */
case 18:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmFullRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmHalfRate */
case 19:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmHalfRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmEnhancedFullRate */
case 20:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmEnhancedFullRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericAudioCapability */
case 21:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericAudioCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g729Extensions */
case 22:
stat = asn1PE_H245G729Extensions (&lctxt, pvalue->u.g729Extensions);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* vbd */
case 23:
stat = asn1PE_H245VBDCapability (&lctxt, pvalue->u.vbd);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* audioTelephonyEvent */
case 24:
stat = asn1PE_H245NoPTAudioTelephonyEventCapability (&lctxt, pvalue->u.audioTelephonyEvent);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* audioTone */
case 25:
stat = asn1PE_H245NoPTAudioToneCapability (&lctxt, pvalue->u.audioTone);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* Capability_h233EncryptionReceiveCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Capability_h233EncryptionReceiveCapability (OOCTXT* pctxt, H245Capability_h233EncryptionReceiveCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode h233IVResponseTime */
stat = encodeConsUnsigned (pctxt, pvalue->h233IVResponseTime, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245NonStandardParameter */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245NonStandardParameter (OOCTXT* pctxt, H245_SeqOfH245NonStandardParameter* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245NonStandardParameter (pctxt, ((H245NonStandardParameter*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceCapability (OOCTXT* pctxt, H245ConferenceCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.videoIndicateMixingCapabilityPresent ||
pvalue->m.multipointVisualizationCapabilityPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardDataPresent);
/* encode nonStandardData */
if (pvalue->m.nonStandardDataPresent) {
stat = asn1PE_H245_SeqOfH245NonStandardParameter (pctxt, &pvalue->nonStandardData);
if (stat != ASN_OK) return stat;
}
/* encode chairControlCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->chairControlCapability);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoIndicateMixingCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.multipointVisualizationCapabilityPresent);
/* encode extension elements */
if (pvalue->m.videoIndicateMixingCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->videoIndicateMixingCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.multipointVisualizationCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->multipointVisualizationCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* MediaEncryptionAlgorithm */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MediaEncryptionAlgorithm (OOCTXT* pctxt, H245MediaEncryptionAlgorithm* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* algorithm */
case 2:
stat = encodeObjectIdentifier (pctxt, pvalue->u.algorithm);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* EncryptionCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionCapability (OOCTXT* pctxt, H245EncryptionCapability* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MediaEncryptionAlgorithm (pctxt, ((H245MediaEncryptionAlgorithm*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* AuthenticationCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AuthenticationCapability (OOCTXT* pctxt, H245AuthenticationCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.antiSpamAlgorithmPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.antiSpamAlgorithmPresent);
/* encode extension elements */
if (pvalue->m.antiSpamAlgorithmPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeObjectIdentifier (&lctxt, &pvalue->antiSpamAlgorithm);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* IntegrityCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IntegrityCapability (OOCTXT* pctxt, H245IntegrityCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* EncryptionAuthenticationAndIntegrity */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionAuthenticationAndIntegrity (OOCTXT* pctxt, H245EncryptionAuthenticationAndIntegrity* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.encryptionCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.authenticationCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.integrityCapabilityPresent);
/* encode encryptionCapability */
if (pvalue->m.encryptionCapabilityPresent) {
stat = asn1PE_H245EncryptionCapability (pctxt, &pvalue->encryptionCapability);
if (stat != ASN_OK) return stat;
}
/* encode authenticationCapability */
if (pvalue->m.authenticationCapabilityPresent) {
stat = asn1PE_H245AuthenticationCapability (pctxt, &pvalue->authenticationCapability);
if (stat != ASN_OK) return stat;
}
/* encode integrityCapability */
if (pvalue->m.integrityCapabilityPresent) {
stat = asn1PE_H245IntegrityCapability (pctxt, &pvalue->integrityCapability);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H235SecurityCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H235SecurityCapability (OOCTXT* pctxt, H245H235SecurityCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode encryptionAuthenticationAndIntegrity */
stat = asn1PE_H245EncryptionAuthenticationAndIntegrity (pctxt, &pvalue->encryptionAuthenticationAndIntegrity);
if (stat != ASN_OK) return stat;
/* encode mediaCapability */
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->mediaCapability);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UserInputCapability_nonStandard */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputCapability_nonStandard (OOCTXT* pctxt, H245UserInputCapability_nonStandard* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245NonStandardParameter (pctxt, ((H245NonStandardParameter*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputCapability (OOCTXT* pctxt, H245UserInputCapability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245UserInputCapability_nonStandard (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* basicString */
case 2:
/* NULL */
break;
/* iA5String */
case 3:
/* NULL */
break;
/* generalString */
case 4:
/* NULL */
break;
/* dtmf */
case 5:
/* NULL */
break;
/* hookflash */
case 6:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* extendedAlphanumeric */
case 7:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexFormat */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexFormat (OOCTXT* pctxt, H245MultiplexFormat* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* h222Capability */
case 2:
stat = asn1PE_H245H222Capability (pctxt, pvalue->u.h222Capability);
if (stat != ASN_OK) return stat;
break;
/* h223Capability */
case 3:
stat = asn1PE_H245H223Capability (pctxt, pvalue->u.h223Capability);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* AlternativeCapabilitySet */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AlternativeCapabilitySet (OOCTXT* pctxt, H245AlternativeCapabilitySet* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexedStreamCapability_capabilityOnMuxStream */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexedStreamCapability_capabilityOnMuxStream (OOCTXT* pctxt, H245MultiplexedStreamCapability_capabilityOnMuxStream* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245AlternativeCapabilitySet (pctxt, ((H245AlternativeCapabilitySet*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexedStreamCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexedStreamCapability (OOCTXT* pctxt, H245MultiplexedStreamCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityOnMuxStreamPresent);
/* encode multiplexFormat */
stat = asn1PE_H245MultiplexFormat (pctxt, &pvalue->multiplexFormat);
if (stat != ASN_OK) return stat;
/* encode controlOnMuxStream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->controlOnMuxStream);
if (stat != ASN_OK) return stat;
/* encode capabilityOnMuxStream */
if (pvalue->m.capabilityOnMuxStreamPresent) {
stat = asn1PE_H245MultiplexedStreamCapability_capabilityOnMuxStream (pctxt, &pvalue->capabilityOnMuxStream);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* AudioTelephonyEventCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioTelephonyEventCapability (OOCTXT* pctxt, H245AudioTelephonyEventCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode dynamicRTPPayloadType */
stat = encodeConsUnsigned (pctxt, pvalue->dynamicRTPPayloadType, 96U, 127U);
if (stat != ASN_OK) return stat;
/* encode audioTelephoneEvent */
stat = encodeVarWidthCharString (pctxt, pvalue->audioTelephoneEvent);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* AudioToneCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioToneCapability (OOCTXT* pctxt, H245AudioToneCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode dynamicRTPPayloadType */
stat = encodeConsUnsigned (pctxt, pvalue->dynamicRTPPayloadType, 96U, 127U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECCapability_rfc2733_separateStream */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECCapability_rfc2733_separateStream (OOCTXT* pctxt, H245FECCapability_rfc2733_separateStream* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode separatePort */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->separatePort);
if (stat != ASN_OK) return stat;
/* encode samePort */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->samePort);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECCapability_rfc2733 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECCapability_rfc2733 (OOCTXT* pctxt, H245FECCapability_rfc2733* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode redundancyEncoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->redundancyEncoding);
if (stat != ASN_OK) return stat;
/* encode separateStream */
stat = asn1PE_H245FECCapability_rfc2733_separateStream (pctxt, &pvalue->separateStream);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECCapability (OOCTXT* pctxt, H245FECCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* rfc2733 */
case 1:
stat = asn1PE_H245FECCapability_rfc2733 (pctxt, pvalue->u.rfc2733);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStreamCapability_capabilities */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStreamCapability_capabilities (OOCTXT* pctxt, H245MultiplePayloadStreamCapability_capabilities* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245AlternativeCapabilitySet (pctxt, ((H245AlternativeCapabilitySet*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStreamCapability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStreamCapability (OOCTXT* pctxt, H245MultiplePayloadStreamCapability* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode capabilities */
stat = asn1PE_H245MultiplePayloadStreamCapability_capabilities (pctxt, &pvalue->capabilities);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* Capability */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Capability (OOCTXT* pctxt, H245Capability* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 12);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 11);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* receiveVideoCapability */
case 2:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.receiveVideoCapability);
if (stat != ASN_OK) return stat;
break;
/* transmitVideoCapability */
case 3:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.transmitVideoCapability);
if (stat != ASN_OK) return stat;
break;
/* receiveAndTransmitVideoCapability */
case 4:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.receiveAndTransmitVideoCapability);
if (stat != ASN_OK) return stat;
break;
/* receiveAudioCapability */
case 5:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.receiveAudioCapability);
if (stat != ASN_OK) return stat;
break;
/* transmitAudioCapability */
case 6:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.transmitAudioCapability);
if (stat != ASN_OK) return stat;
break;
/* receiveAndTransmitAudioCapability */
case 7:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.receiveAndTransmitAudioCapability);
if (stat != ASN_OK) return stat;
break;
/* receiveDataApplicationCapability */
case 8:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.receiveDataApplicationCapability);
if (stat != ASN_OK) return stat;
break;
/* transmitDataApplicationCapability */
case 9:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.transmitDataApplicationCapability);
if (stat != ASN_OK) return stat;
break;
/* receiveAndTransmitDataApplicationCapability */
case 10:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.receiveAndTransmitDataApplicationCapability);
if (stat != ASN_OK) return stat;
break;
/* h233EncryptionTransmitCapability */
case 11:
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->u.h233EncryptionTransmitCapability);
if (stat != ASN_OK) return stat;
break;
/* h233EncryptionReceiveCapability */
case 12:
stat = asn1PE_H245Capability_h233EncryptionReceiveCapability (pctxt, pvalue->u.h233EncryptionReceiveCapability);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 13);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* conferenceCapability */
case 13:
stat = asn1PE_H245ConferenceCapability (&lctxt, pvalue->u.conferenceCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* h235SecurityCapability */
case 14:
stat = asn1PE_H245H235SecurityCapability (&lctxt, pvalue->u.h235SecurityCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* maxPendingReplacementFor */
case 15:
stat = encodeConsUnsigned (&lctxt, pvalue->u.maxPendingReplacementFor, 0U, 255U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveUserInputCapability */
case 16:
stat = asn1PE_H245UserInputCapability (&lctxt, pvalue->u.receiveUserInputCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* transmitUserInputCapability */
case 17:
stat = asn1PE_H245UserInputCapability (&lctxt, pvalue->u.transmitUserInputCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveAndTransmitUserInputCapability */
case 18:
stat = asn1PE_H245UserInputCapability (&lctxt, pvalue->u.receiveAndTransmitUserInputCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericControlCapability */
case 19:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericControlCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveMultiplexedStreamCapability */
case 20:
stat = asn1PE_H245MultiplexedStreamCapability (&lctxt, pvalue->u.receiveMultiplexedStreamCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* transmitMultiplexedStreamCapability */
case 21:
stat = asn1PE_H245MultiplexedStreamCapability (&lctxt, pvalue->u.transmitMultiplexedStreamCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveAndTransmitMultiplexedStreamCapability */
case 22:
stat = asn1PE_H245MultiplexedStreamCapability (&lctxt, pvalue->u.receiveAndTransmitMultiplexedStreamCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveRTPAudioTelephonyEventCapability */
case 23:
stat = asn1PE_H245AudioTelephonyEventCapability (&lctxt, pvalue->u.receiveRTPAudioTelephonyEventCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* receiveRTPAudioToneCapability */
case 24:
stat = asn1PE_H245AudioToneCapability (&lctxt, pvalue->u.receiveRTPAudioToneCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* fecCapability */
case 25:
stat = asn1PE_H245FECCapability (&lctxt, pvalue->u.fecCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplePayloadStreamCapability */
case 26:
stat = asn1PE_H245MultiplePayloadStreamCapability (&lctxt, pvalue->u.multiplePayloadStreamCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* CapabilityTableEntry */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityTableEntry (OOCTXT* pctxt, H245CapabilityTableEntry* pvalue)
{
int stat = ASN_OK;
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityPresent);
/* encode capabilityTableEntryNumber */
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->capabilityTableEntryNumber);
if (stat != ASN_OK) return stat;
/* encode capability */
if (pvalue->m.capabilityPresent) {
stat = asn1PE_H245Capability (pctxt, &pvalue->capability);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySet_capabilityTable */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySet_capabilityTable (OOCTXT* pctxt, H245TerminalCapabilitySet_capabilityTable* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CapabilityTableEntry (pctxt, ((H245CapabilityTableEntry*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CapabilityDescriptorNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityDescriptorNumber (OOCTXT* pctxt, H245CapabilityDescriptorNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CapabilityDescriptor_simultaneousCapabilities */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityDescriptor_simultaneousCapabilities (OOCTXT* pctxt, H245CapabilityDescriptor_simultaneousCapabilities* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245AlternativeCapabilitySet (pctxt, ((H245AlternativeCapabilitySet*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CapabilityDescriptor */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CapabilityDescriptor (OOCTXT* pctxt, H245CapabilityDescriptor* pvalue)
{
int stat = ASN_OK;
encodeBit (pctxt, (ASN1BOOL)pvalue->m.simultaneousCapabilitiesPresent);
/* encode capabilityDescriptorNumber */
stat = asn1PE_H245CapabilityDescriptorNumber (pctxt, pvalue->capabilityDescriptorNumber);
if (stat != ASN_OK) return stat;
/* encode simultaneousCapabilities */
if (pvalue->m.simultaneousCapabilitiesPresent) {
stat = asn1PE_H245CapabilityDescriptor_simultaneousCapabilities (pctxt, &pvalue->simultaneousCapabilities);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySet_capabilityDescriptors */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySet_capabilityDescriptors (OOCTXT* pctxt, H245TerminalCapabilitySet_capabilityDescriptors* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CapabilityDescriptor (pctxt, ((H245CapabilityDescriptor*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySet */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySet (OOCTXT* pctxt, H245TerminalCapabilitySet* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.multiplexCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityTablePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityDescriptorsPresent);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode protocolIdentifier */
stat = encodeObjectIdentifier (pctxt, &pvalue->protocolIdentifier);
if (stat != ASN_OK) return stat;
/* encode multiplexCapability */
if (pvalue->m.multiplexCapabilityPresent) {
stat = asn1PE_H245MultiplexCapability (pctxt, &pvalue->multiplexCapability);
if (stat != ASN_OK) return stat;
}
/* encode capabilityTable */
if (pvalue->m.capabilityTablePresent) {
stat = asn1PE_H245TerminalCapabilitySet_capabilityTable (pctxt, &pvalue->capabilityTable);
if (stat != ASN_OK) return stat;
}
/* encode capabilityDescriptors */
if (pvalue->m.capabilityDescriptorsPresent) {
stat = asn1PE_H245TerminalCapabilitySet_capabilityDescriptors (pctxt, &pvalue->capabilityDescriptors);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelNumber (OOCTXT* pctxt, H245LogicalChannelNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 1U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EncryptionMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionMode (OOCTXT* pctxt, H245EncryptionMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* h233Encryption */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingElement (OOCTXT* pctxt, H245RedundancyEncodingElement* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.payloadTypePresent);
/* encode dataType */
stat = asn1PE_H245DataType (pctxt, (H245DataType*)pvalue->dataType);
if (stat != ASN_OK) return stat;
/* encode payloadType */
if (pvalue->m.payloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->payloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245RedundancyEncodingElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245RedundancyEncodingElement (OOCTXT* pctxt, H245_SeqOfH245RedundancyEncodingElement* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245RedundancyEncodingElement (pctxt, ((H245RedundancyEncodingElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncoding_rtpRedundancyEncoding */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncoding_rtpRedundancyEncoding (OOCTXT* pctxt, H245RedundancyEncoding_rtpRedundancyEncoding* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.primaryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.secondaryPresent);
/* encode primary */
if (pvalue->m.primaryPresent) {
stat = asn1PE_H245RedundancyEncodingElement (pctxt, &pvalue->primary);
if (stat != ASN_OK) return stat;
}
/* encode secondary */
if (pvalue->m.secondaryPresent) {
stat = asn1PE_H245_SeqOfH245RedundancyEncodingElement (pctxt, &pvalue->secondary);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncoding */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncoding (OOCTXT* pctxt, H245RedundancyEncoding* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rtpRedundancyEncodingPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.secondaryEncodingPresent);
/* encode redundancyEncodingMethod */
stat = asn1PE_H245RedundancyEncodingMethod (pctxt, &pvalue->redundancyEncodingMethod);
if (stat != ASN_OK) return stat;
/* encode secondaryEncoding */
if (pvalue->m.secondaryEncodingPresent) {
stat = asn1PE_H245DataType (pctxt, (H245DataType*)pvalue->secondaryEncoding);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpRedundancyEncodingPresent);
/* encode extension elements */
if (pvalue->m.rtpRedundancyEncodingPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245RedundancyEncoding_rtpRedundancyEncoding (&lctxt, &pvalue->rtpRedundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStreamElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStreamElement (OOCTXT* pctxt, H245MultiplePayloadStreamElement* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.payloadTypePresent);
/* encode dataType */
stat = asn1PE_H245DataType (pctxt, (H245DataType*)pvalue->dataType);
if (stat != ASN_OK) return stat;
/* encode payloadType */
if (pvalue->m.payloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->payloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245MultiplePayloadStreamElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245MultiplePayloadStreamElement (OOCTXT* pctxt, H245_SeqOfH245MultiplePayloadStreamElement* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245MultiplePayloadStreamElement (pctxt, ((H245MultiplePayloadStreamElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStream */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStream (OOCTXT* pctxt, H245MultiplePayloadStream* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode elements */
stat = asn1PE_H245_SeqOfH245MultiplePayloadStreamElement (pctxt, &pvalue->elements);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECData_rfc2733_mode_separateStream_differentPort */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData_rfc2733_mode_separateStream_differentPort (OOCTXT* pctxt, H245FECData_rfc2733_mode_separateStream_differentPort* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.protectedPayloadTypePresent);
/* encode protectedSessionID */
stat = encodeConsUnsigned (pctxt, pvalue->protectedSessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode protectedPayloadType */
if (pvalue->m.protectedPayloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->protectedPayloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* FECData_rfc2733_mode_separateStream_samePort */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData_rfc2733_mode_separateStream_samePort (OOCTXT* pctxt, H245FECData_rfc2733_mode_separateStream_samePort* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode protectedPayloadType */
stat = encodeConsUnsigned (pctxt, pvalue->protectedPayloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECData_rfc2733_mode_separateStream */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData_rfc2733_mode_separateStream (OOCTXT* pctxt, H245FECData_rfc2733_mode_separateStream* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* differentPort */
case 1:
stat = asn1PE_H245FECData_rfc2733_mode_separateStream_differentPort (pctxt, pvalue->u.differentPort);
if (stat != ASN_OK) return stat;
break;
/* samePort */
case 2:
stat = asn1PE_H245FECData_rfc2733_mode_separateStream_samePort (pctxt, pvalue->u.samePort);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FECData_rfc2733_mode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData_rfc2733_mode (OOCTXT* pctxt, H245FECData_rfc2733_mode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* redundancyEncoding */
case 1:
/* NULL */
break;
/* separateStream */
case 2:
stat = asn1PE_H245FECData_rfc2733_mode_separateStream (pctxt, pvalue->u.separateStream);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FECData_rfc2733 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData_rfc2733 (OOCTXT* pctxt, H245FECData_rfc2733* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode mode */
stat = asn1PE_H245FECData_rfc2733_mode (pctxt, &pvalue->mode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECData */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECData (OOCTXT* pctxt, H245FECData* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* rfc2733 */
case 1:
stat = asn1PE_H245FECData_rfc2733 (pctxt, pvalue->u.rfc2733);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* H235Media_mediaType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H235Media_mediaType (OOCTXT* pctxt, H245H235Media_mediaType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* videoData */
case 2:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.videoData);
if (stat != ASN_OK) return stat;
break;
/* audioData */
case 3:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.audioData);
if (stat != ASN_OK) return stat;
break;
/* data */
case 4:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.data);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* redundancyEncoding */
case 5:
stat = asn1PE_H245RedundancyEncoding (&lctxt, pvalue->u.redundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplePayloadStream */
case 6:
stat = asn1PE_H245MultiplePayloadStream (&lctxt, pvalue->u.multiplePayloadStream);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* fec */
case 7:
stat = asn1PE_H245FECData (&lctxt, pvalue->u.fec);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H235Media */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H235Media (OOCTXT* pctxt, H245H235Media* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode encryptionAuthenticationAndIntegrity */
stat = asn1PE_H245EncryptionAuthenticationAndIntegrity (pctxt, &pvalue->encryptionAuthenticationAndIntegrity);
if (stat != ASN_OK) return stat;
/* encode mediaType */
stat = asn1PE_H245H235Media_mediaType (pctxt, &pvalue->mediaType);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexedStreamParameter */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexedStreamParameter (OOCTXT* pctxt, H245MultiplexedStreamParameter* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode multiplexFormat */
stat = asn1PE_H245MultiplexFormat (pctxt, &pvalue->multiplexFormat);
if (stat != ASN_OK) return stat;
/* encode controlOnMuxStream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->controlOnMuxStream);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DataType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataType (OOCTXT* pctxt, H245DataType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* nullData */
case 2:
/* NULL */
break;
/* videoData */
case 3:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.videoData);
if (stat != ASN_OK) return stat;
break;
/* audioData */
case 4:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.audioData);
if (stat != ASN_OK) return stat;
break;
/* data */
case 5:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.data);
if (stat != ASN_OK) return stat;
break;
/* encryptionData */
case 6:
stat = asn1PE_H245EncryptionMode (pctxt, pvalue->u.encryptionData);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h235Control */
case 7:
stat = asn1PE_H245NonStandardParameter (&lctxt, pvalue->u.h235Control);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* h235Media */
case 8:
stat = asn1PE_H245H235Media (&lctxt, pvalue->u.h235Media);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplexedStream */
case 9:
stat = asn1PE_H245MultiplexedStreamParameter (&lctxt, pvalue->u.multiplexedStream);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* redundancyEncoding */
case 10:
stat = asn1PE_H245RedundancyEncoding (&lctxt, pvalue->u.redundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplePayloadStream */
case 11:
stat = asn1PE_H245MultiplePayloadStream (&lctxt, pvalue->u.multiplePayloadStream);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* fec */
case 12:
stat = asn1PE_H245FECData (&lctxt, pvalue->u.fec);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H222LogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H222LogicalChannelParameters (OOCTXT* pctxt, H245H222LogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.pcr_pidPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.programDescriptorsPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.streamDescriptorsPresent);
/* encode resourceID */
stat = encodeConsUnsigned (pctxt, pvalue->resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode subChannelID */
stat = encodeConsUnsigned (pctxt, pvalue->subChannelID, 0U, 8191U);
if (stat != ASN_OK) return stat;
/* encode pcr_pid */
if (pvalue->m.pcr_pidPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->pcr_pid, 0U, 8191U);
if (stat != ASN_OK) return stat;
}
/* encode programDescriptors */
if (pvalue->m.programDescriptorsPresent) {
stat = encodeOctetString (pctxt, pvalue->programDescriptors.numocts, pvalue->programDescriptors.data);
if (stat != ASN_OK) return stat;
}
/* encode streamDescriptors */
if (pvalue->m.streamDescriptorsPresent) {
stat = encodeOctetString (pctxt, pvalue->streamDescriptors.numocts, pvalue->streamDescriptors.data);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H223LogicalChannelParameters_adaptationLayerType_al3 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223LogicalChannelParameters_adaptationLayerType_al3 (OOCTXT* pctxt, H245H223LogicalChannelParameters_adaptationLayerType_al3* pvalue)
{
int stat = ASN_OK;
/* encode controlFieldOctets */
stat = encodeConsUnsigned (pctxt, pvalue->controlFieldOctets, 0U, 2U);
if (stat != ASN_OK) return stat;
/* encode sendBufferSize */
stat = encodeConsUnsigned (pctxt, pvalue->sendBufferSize, 0U, 16777215U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223AL1MParameters_transferMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL1MParameters_transferMode (OOCTXT* pctxt, H245H223AL1MParameters_transferMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* framed */
case 1:
/* NULL */
break;
/* unframed */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL1MParameters_headerFEC */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL1MParameters_headerFEC (OOCTXT* pctxt, H245H223AL1MParameters_headerFEC* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* sebch16_7 */
case 1:
/* NULL */
break;
/* golay24_12 */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL1MParameters_crcLength */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL1MParameters_crcLength (OOCTXT* pctxt, H245H223AL1MParameters_crcLength* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* crc4bit */
case 1:
/* NULL */
break;
/* crc12bit */
case 2:
/* NULL */
break;
/* crc20bit */
case 3:
/* NULL */
break;
/* crc28bit */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* crc8bit */
case 5:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crc16bit */
case 6:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crc32bit */
case 7:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crcNotUsed */
case 8:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223AnnexCArqParameters_numberOfRetransmissions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AnnexCArqParameters_numberOfRetransmissions (OOCTXT* pctxt, H245H223AnnexCArqParameters_numberOfRetransmissions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* finite */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.finite, 0U, 16U);
if (stat != ASN_OK) return stat;
break;
/* infinite */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AnnexCArqParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AnnexCArqParameters (OOCTXT* pctxt, H245H223AnnexCArqParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode numberOfRetransmissions */
stat = asn1PE_H245H223AnnexCArqParameters_numberOfRetransmissions (pctxt, &pvalue->numberOfRetransmissions);
if (stat != ASN_OK) return stat;
/* encode sendBufferSize */
stat = encodeConsUnsigned (pctxt, pvalue->sendBufferSize, 0U, 16777215U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223AL1MParameters_arqType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL1MParameters_arqType (OOCTXT* pctxt, H245H223AL1MParameters_arqType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noArq */
case 1:
/* NULL */
break;
/* typeIArq */
case 2:
stat = asn1PE_H245H223AnnexCArqParameters (pctxt, pvalue->u.typeIArq);
if (stat != ASN_OK) return stat;
break;
/* typeIIArq */
case 3:
stat = asn1PE_H245H223AnnexCArqParameters (pctxt, pvalue->u.typeIIArq);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL1MParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL1MParameters (OOCTXT* pctxt, H245H223AL1MParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rsCodeCorrectionPresent);
encodeBit (pctxt, extbit);
/* encode transferMode */
stat = asn1PE_H245H223AL1MParameters_transferMode (pctxt, &pvalue->transferMode);
if (stat != ASN_OK) return stat;
/* encode headerFEC */
stat = asn1PE_H245H223AL1MParameters_headerFEC (pctxt, &pvalue->headerFEC);
if (stat != ASN_OK) return stat;
/* encode crcLength */
stat = asn1PE_H245H223AL1MParameters_crcLength (pctxt, &pvalue->crcLength);
if (stat != ASN_OK) return stat;
/* encode rcpcCodeRate */
stat = encodeConsUnsigned (pctxt, pvalue->rcpcCodeRate, 8U, 32U);
if (stat != ASN_OK) return stat;
/* encode arqType */
stat = asn1PE_H245H223AL1MParameters_arqType (pctxt, &pvalue->arqType);
if (stat != ASN_OK) return stat;
/* encode alpduInterleaving */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alpduInterleaving);
if (stat != ASN_OK) return stat;
/* encode alsduSplitting */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alsduSplitting);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rsCodeCorrectionPresent);
/* encode extension elements */
if (pvalue->m.rsCodeCorrectionPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->rsCodeCorrection, 0U, 127U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL2MParameters_headerFEC */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL2MParameters_headerFEC (OOCTXT* pctxt, H245H223AL2MParameters_headerFEC* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* sebch16_5 */
case 1:
/* NULL */
break;
/* golay24_12 */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL2MParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL2MParameters (OOCTXT* pctxt, H245H223AL2MParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode headerFEC */
stat = asn1PE_H245H223AL2MParameters_headerFEC (pctxt, &pvalue->headerFEC);
if (stat != ASN_OK) return stat;
/* encode alpduInterleaving */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alpduInterleaving);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223AL3MParameters_headerFormat */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL3MParameters_headerFormat (OOCTXT* pctxt, H245H223AL3MParameters_headerFormat* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* sebch16_7 */
case 1:
/* NULL */
break;
/* golay24_12 */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL3MParameters_crcLength */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL3MParameters_crcLength (OOCTXT* pctxt, H245H223AL3MParameters_crcLength* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* crc4bit */
case 1:
/* NULL */
break;
/* crc12bit */
case 2:
/* NULL */
break;
/* crc20bit */
case 3:
/* NULL */
break;
/* crc28bit */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* crc8bit */
case 5:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crc16bit */
case 6:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crc32bit */
case 7:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* crcNotUsed */
case 8:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL3MParameters_arqType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL3MParameters_arqType (OOCTXT* pctxt, H245H223AL3MParameters_arqType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noArq */
case 1:
/* NULL */
break;
/* typeIArq */
case 2:
stat = asn1PE_H245H223AnnexCArqParameters (pctxt, pvalue->u.typeIArq);
if (stat != ASN_OK) return stat;
break;
/* typeIIArq */
case 3:
stat = asn1PE_H245H223AnnexCArqParameters (pctxt, pvalue->u.typeIIArq);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223AL3MParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223AL3MParameters (OOCTXT* pctxt, H245H223AL3MParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rsCodeCorrectionPresent);
encodeBit (pctxt, extbit);
/* encode headerFormat */
stat = asn1PE_H245H223AL3MParameters_headerFormat (pctxt, &pvalue->headerFormat);
if (stat != ASN_OK) return stat;
/* encode crcLength */
stat = asn1PE_H245H223AL3MParameters_crcLength (pctxt, &pvalue->crcLength);
if (stat != ASN_OK) return stat;
/* encode rcpcCodeRate */
stat = encodeConsUnsigned (pctxt, pvalue->rcpcCodeRate, 8U, 32U);
if (stat != ASN_OK) return stat;
/* encode arqType */
stat = asn1PE_H245H223AL3MParameters_arqType (pctxt, &pvalue->arqType);
if (stat != ASN_OK) return stat;
/* encode alpduInterleaving */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->alpduInterleaving);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rsCodeCorrectionPresent);
/* encode extension elements */
if (pvalue->m.rsCodeCorrectionPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->rsCodeCorrection, 0U, 127U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H223LogicalChannelParameters_adaptationLayerType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223LogicalChannelParameters_adaptationLayerType (OOCTXT* pctxt, H245H223LogicalChannelParameters_adaptationLayerType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* al1Framed */
case 2:
/* NULL */
break;
/* al1NotFramed */
case 3:
/* NULL */
break;
/* al2WithoutSequenceNumbers */
case 4:
/* NULL */
break;
/* al2WithSequenceNumbers */
case 5:
/* NULL */
break;
/* al3 */
case 6:
stat = asn1PE_H245H223LogicalChannelParameters_adaptationLayerType_al3 (pctxt, pvalue->u.al3);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* al1M */
case 7:
stat = asn1PE_H245H223AL1MParameters (&lctxt, pvalue->u.al1M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* al2M */
case 8:
stat = asn1PE_H245H223AL2MParameters (&lctxt, pvalue->u.al2M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* al3M */
case 9:
stat = asn1PE_H245H223AL3MParameters (&lctxt, pvalue->u.al3M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223LogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223LogicalChannelParameters (OOCTXT* pctxt, H245H223LogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode adaptationLayerType */
stat = asn1PE_H245H223LogicalChannelParameters_adaptationLayerType (pctxt, &pvalue->adaptationLayerType);
if (stat != ASN_OK) return stat;
/* encode segmentableFlag */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->segmentableFlag);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CRCLength */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CRCLength (OOCTXT* pctxt, H245CRCLength* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* crc8bit */
case 1:
/* NULL */
break;
/* crc16bit */
case 2:
/* NULL */
break;
/* crc32bit */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* V76HDLCParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76HDLCParameters (OOCTXT* pctxt, H245V76HDLCParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode crcLength */
stat = asn1PE_H245CRCLength (pctxt, &pvalue->crcLength);
if (stat != ASN_OK) return stat;
/* encode n401 */
stat = encodeConsUnsigned (pctxt, pvalue->n401, 1U, 4095U);
if (stat != ASN_OK) return stat;
/* encode loopbackTestProcedure */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->loopbackTestProcedure);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V76LogicalChannelParameters_suspendResume */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76LogicalChannelParameters_suspendResume (OOCTXT* pctxt, H245V76LogicalChannelParameters_suspendResume* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noSuspendResume */
case 1:
/* NULL */
break;
/* suspendResumewAddress */
case 2:
/* NULL */
break;
/* suspendResumewoAddress */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* V76LogicalChannelParameters_mode_eRM_recovery */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76LogicalChannelParameters_mode_eRM_recovery (OOCTXT* pctxt, H245V76LogicalChannelParameters_mode_eRM_recovery* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* rej */
case 1:
/* NULL */
break;
/* sREJ */
case 2:
/* NULL */
break;
/* mSREJ */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* V76LogicalChannelParameters_mode_eRM */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76LogicalChannelParameters_mode_eRM (OOCTXT* pctxt, H245V76LogicalChannelParameters_mode_eRM* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode windowSize */
stat = encodeConsUnsigned (pctxt, pvalue->windowSize, 1U, 127U);
if (stat != ASN_OK) return stat;
/* encode recovery */
stat = asn1PE_H245V76LogicalChannelParameters_mode_eRM_recovery (pctxt, &pvalue->recovery);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V76LogicalChannelParameters_mode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76LogicalChannelParameters_mode (OOCTXT* pctxt, H245V76LogicalChannelParameters_mode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* eRM */
case 1:
stat = asn1PE_H245V76LogicalChannelParameters_mode_eRM (pctxt, pvalue->u.eRM);
if (stat != ASN_OK) return stat;
break;
/* uNERM */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* V75Parameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V75Parameters (OOCTXT* pctxt, H245V75Parameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioHeaderPresent */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->audioHeaderPresent);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V76LogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76LogicalChannelParameters (OOCTXT* pctxt, H245V76LogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode hdlcParameters */
stat = asn1PE_H245V76HDLCParameters (pctxt, &pvalue->hdlcParameters);
if (stat != ASN_OK) return stat;
/* encode suspendResume */
stat = asn1PE_H245V76LogicalChannelParameters_suspendResume (pctxt, &pvalue->suspendResume);
if (stat != ASN_OK) return stat;
/* encode uIH */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->uIH);
if (stat != ASN_OK) return stat;
/* encode mode */
stat = asn1PE_H245V76LogicalChannelParameters_mode (pctxt, &pvalue->mode);
if (stat != ASN_OK) return stat;
/* encode v75Parameters */
stat = asn1PE_H245V75Parameters (pctxt, &pvalue->v75Parameters);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPAddress_network */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPAddress_network (OOCTXT* pctxt, H245UnicastAddress_iPAddress_network* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPAddress (OOCTXT* pctxt, H245UnicastAddress_iPAddress* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode network */
stat = asn1PE_H245UnicastAddress_iPAddress_network (pctxt, &pvalue->network);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = encodeConsUnsigned (pctxt, pvalue->tsapIdentifier, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPXAddress_node */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPXAddress_node (OOCTXT* pctxt, H245UnicastAddress_iPXAddress_node* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 6, 6, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPXAddress_netnum */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPXAddress_netnum (OOCTXT* pctxt, H245UnicastAddress_iPXAddress_netnum* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPXAddress_tsapIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPXAddress_tsapIdentifier (OOCTXT* pctxt, H245UnicastAddress_iPXAddress_tsapIdentifier* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 2, 2, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPXAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPXAddress (OOCTXT* pctxt, H245UnicastAddress_iPXAddress* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode node */
stat = asn1PE_H245UnicastAddress_iPXAddress_node (pctxt, &pvalue->node);
if (stat != ASN_OK) return stat;
/* encode netnum */
stat = asn1PE_H245UnicastAddress_iPXAddress_netnum (pctxt, &pvalue->netnum);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = asn1PE_H245UnicastAddress_iPXAddress_tsapIdentifier (pctxt, &pvalue->tsapIdentifier);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iP6Address_network */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iP6Address_network (OOCTXT* pctxt, H245UnicastAddress_iP6Address_network* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iP6Address */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iP6Address (OOCTXT* pctxt, H245UnicastAddress_iP6Address* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode network */
stat = asn1PE_H245UnicastAddress_iP6Address_network (pctxt, &pvalue->network);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = encodeConsUnsigned (pctxt, pvalue->tsapIdentifier, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_netBios */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_netBios (OOCTXT* pctxt, H245UnicastAddress_netBios* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPSourceRouteAddress_routing */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPSourceRouteAddress_routing (OOCTXT* pctxt, H245UnicastAddress_iPSourceRouteAddress_routing* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* strict */
case 1:
/* NULL */
break;
/* loose */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPSourceRouteAddress_network */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPSourceRouteAddress_network (OOCTXT* pctxt, H245UnicastAddress_iPSourceRouteAddress_network* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPSourceRouteAddress_route_element */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPSourceRouteAddress_route_element (OOCTXT* pctxt, H245UnicastAddress_iPSourceRouteAddress_route_element* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245UnicastAddress_iPSourceRouteAddress_route_elem */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245UnicastAddress_iPSourceRouteAddress_route_element (OOCTXT* pctxt, H245_SeqOfH245UnicastAddress_iPSourceRouteAddress_route_element* pvalue)
{
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245UnicastAddress_iPSourceRouteAddress_route_element (pctxt, &pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_iPSourceRouteAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_iPSourceRouteAddress (OOCTXT* pctxt, H245UnicastAddress_iPSourceRouteAddress* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode routing */
stat = asn1PE_H245UnicastAddress_iPSourceRouteAddress_routing (pctxt, &pvalue->routing);
if (stat != ASN_OK) return stat;
/* encode network */
stat = asn1PE_H245UnicastAddress_iPSourceRouteAddress_network (pctxt, &pvalue->network);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = encodeConsUnsigned (pctxt, pvalue->tsapIdentifier, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode route */
stat = asn1PE_H245_SeqOfH245UnicastAddress_iPSourceRouteAddress_route_element (pctxt, &pvalue->route);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress_nsap */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress_nsap (OOCTXT* pctxt, H245UnicastAddress_nsap* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UnicastAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UnicastAddress (OOCTXT* pctxt, H245UnicastAddress* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* iPAddress */
case 1:
stat = asn1PE_H245UnicastAddress_iPAddress (pctxt, pvalue->u.iPAddress);
if (stat != ASN_OK) return stat;
break;
/* iPXAddress */
case 2:
stat = asn1PE_H245UnicastAddress_iPXAddress (pctxt, pvalue->u.iPXAddress);
if (stat != ASN_OK) return stat;
break;
/* iP6Address */
case 3:
stat = asn1PE_H245UnicastAddress_iP6Address (pctxt, pvalue->u.iP6Address);
if (stat != ASN_OK) return stat;
break;
/* netBios */
case 4:
stat = asn1PE_H245UnicastAddress_netBios (pctxt, pvalue->u.netBios);
if (stat != ASN_OK) return stat;
break;
/* iPSourceRouteAddress */
case 5:
stat = asn1PE_H245UnicastAddress_iPSourceRouteAddress (pctxt, pvalue->u.iPSourceRouteAddress);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* nsap */
case 6:
stat = asn1PE_H245UnicastAddress_nsap (&lctxt, pvalue->u.nsap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* nonStandardAddress */
case 7:
stat = asn1PE_H245NonStandardParameter (&lctxt, pvalue->u.nonStandardAddress);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress_iPAddress_network */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress_iPAddress_network (OOCTXT* pctxt, H245MulticastAddress_iPAddress_network* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 4, 4, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress_iPAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress_iPAddress (OOCTXT* pctxt, H245MulticastAddress_iPAddress* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode network */
stat = asn1PE_H245MulticastAddress_iPAddress_network (pctxt, &pvalue->network);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = encodeConsUnsigned (pctxt, pvalue->tsapIdentifier, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress_iP6Address_network */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress_iP6Address_network (OOCTXT* pctxt, H245MulticastAddress_iP6Address_network* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress_iP6Address */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress_iP6Address (OOCTXT* pctxt, H245MulticastAddress_iP6Address* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode network */
stat = asn1PE_H245MulticastAddress_iP6Address_network (pctxt, &pvalue->network);
if (stat != ASN_OK) return stat;
/* encode tsapIdentifier */
stat = encodeConsUnsigned (pctxt, pvalue->tsapIdentifier, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress_nsap */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress_nsap (OOCTXT* pctxt, H245MulticastAddress_nsap* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 20, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MulticastAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MulticastAddress (OOCTXT* pctxt, H245MulticastAddress* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* iPAddress */
case 1:
stat = asn1PE_H245MulticastAddress_iPAddress (pctxt, pvalue->u.iPAddress);
if (stat != ASN_OK) return stat;
break;
/* iP6Address */
case 2:
stat = asn1PE_H245MulticastAddress_iP6Address (pctxt, pvalue->u.iP6Address);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* nsap */
case 3:
stat = asn1PE_H245MulticastAddress_nsap (&lctxt, pvalue->u.nsap);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* nonStandardAddress */
case 4:
stat = asn1PE_H245NonStandardParameter (&lctxt, pvalue->u.nonStandardAddress);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* TransportAddress */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TransportAddress (OOCTXT* pctxt, H245TransportAddress* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unicastAddress */
case 1:
stat = asn1PE_H245UnicastAddress (pctxt, pvalue->u.unicastAddress);
if (stat != ASN_OK) return stat;
break;
/* multicastAddress */
case 2:
stat = asn1PE_H245MulticastAddress (pctxt, pvalue->u.multicastAddress);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* McuNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245McuNumber (OOCTXT* pctxt, H245McuNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 0U, 192U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* TerminalNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalNumber (OOCTXT* pctxt, H245TerminalNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 0U, 192U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* TerminalLabel */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalLabel (OOCTXT* pctxt, H245TerminalLabel* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode mcuNumber */
stat = asn1PE_H245McuNumber (pctxt, pvalue->mcuNumber);
if (stat != ASN_OK) return stat;
/* encode terminalNumber */
stat = asn1PE_H245TerminalNumber (pctxt, pvalue->terminalNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H2250LogicalChannelParameters_mediaPacketization */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250LogicalChannelParameters_mediaPacketization (OOCTXT* pctxt, H245H2250LogicalChannelParameters_mediaPacketization* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h261aVideoPacketization */
case 1:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* rtpPayloadType */
case 2:
stat = asn1PE_H245RTPPayloadType (&lctxt, pvalue->u.rtpPayloadType);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H2250LogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250LogicalChannelParameters (OOCTXT* pctxt, H245H2250LogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.transportCapabilityPresent ||
pvalue->m.redundancyEncodingPresent ||
pvalue->m.sourcePresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.associatedSessionIDPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaGuaranteedDeliveryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaControlChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaControlGuaranteedDeliveryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.silenceSuppressionPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.destinationPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.dynamicRTPPayloadTypePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaPacketizationPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245_SeqOfH245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
/* encode sessionID */
stat = encodeConsUnsigned (pctxt, pvalue->sessionID, 0U, 255U);
if (stat != ASN_OK) return stat;
/* encode associatedSessionID */
if (pvalue->m.associatedSessionIDPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->associatedSessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
}
/* encode mediaChannel */
if (pvalue->m.mediaChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaChannel);
if (stat != ASN_OK) return stat;
}
/* encode mediaGuaranteedDelivery */
if (pvalue->m.mediaGuaranteedDeliveryPresent) {
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->mediaGuaranteedDelivery);
if (stat != ASN_OK) return stat;
}
/* encode mediaControlChannel */
if (pvalue->m.mediaControlChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaControlChannel);
if (stat != ASN_OK) return stat;
}
/* encode mediaControlGuaranteedDelivery */
if (pvalue->m.mediaControlGuaranteedDeliveryPresent) {
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->mediaControlGuaranteedDelivery);
if (stat != ASN_OK) return stat;
}
/* encode silenceSuppression */
if (pvalue->m.silenceSuppressionPresent) {
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->silenceSuppression);
if (stat != ASN_OK) return stat;
}
/* encode destination */
if (pvalue->m.destinationPresent) {
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->destination);
if (stat != ASN_OK) return stat;
}
/* encode dynamicRTPPayloadType */
if (pvalue->m.dynamicRTPPayloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->dynamicRTPPayloadType, 96U, 127U);
if (stat != ASN_OK) return stat;
}
/* encode mediaPacketization */
if (pvalue->m.mediaPacketizationPresent) {
stat = asn1PE_H245H2250LogicalChannelParameters_mediaPacketization (pctxt, &pvalue->mediaPacketization);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 2);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.transportCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.redundancyEncodingPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sourcePresent);
/* encode extension elements */
if (pvalue->m.transportCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245TransportCapability (&lctxt, &pvalue->transportCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.redundancyEncodingPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245RedundancyEncoding (&lctxt, &pvalue->redundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.sourcePresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245TerminalLabel (&lctxt, &pvalue->source);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannel_forwardLogicalChannelParameters_multi */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters (OOCTXT* pctxt, H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h222LogicalChannelParameters */
case 1:
stat = asn1PE_H245H222LogicalChannelParameters (pctxt, pvalue->u.h222LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
/* h223LogicalChannelParameters */
case 2:
stat = asn1PE_H245H223LogicalChannelParameters (pctxt, pvalue->u.h223LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
/* v76LogicalChannelParameters */
case 3:
stat = asn1PE_H245V76LogicalChannelParameters (pctxt, pvalue->u.v76LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h2250LogicalChannelParameters */
case 4:
stat = asn1PE_H245H2250LogicalChannelParameters (&lctxt, pvalue->u.h2250LogicalChannelParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* none */
case 5:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannel_forwardLogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannel_forwardLogicalChannelParameters (OOCTXT* pctxt, H245OpenLogicalChannel_forwardLogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.forwardLogicalChannelDependencyPresent ||
pvalue->m.replacementForPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.portNumberPresent);
/* encode portNumber */
if (pvalue->m.portNumberPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->portNumber, 0U, 65535U);
if (stat != ASN_OK) return stat;
}
/* encode dataType */
stat = asn1PE_H245DataType (pctxt, &pvalue->dataType);
if (stat != ASN_OK) return stat;
/* encode multiplexParameters */
stat = asn1PE_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters (pctxt, &pvalue->multiplexParameters);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.forwardLogicalChannelDependencyPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.replacementForPresent);
/* encode extension elements */
if (pvalue->m.forwardLogicalChannelDependencyPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->forwardLogicalChannelDependency);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.replacementForPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->replacementFor);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannel_reverseLogicalChannelParameters_multi */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters (OOCTXT* pctxt, H245OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h223LogicalChannelParameters */
case 1:
stat = asn1PE_H245H223LogicalChannelParameters (pctxt, pvalue->u.h223LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
/* v76LogicalChannelParameters */
case 2:
stat = asn1PE_H245V76LogicalChannelParameters (pctxt, pvalue->u.v76LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h2250LogicalChannelParameters */
case 3:
stat = asn1PE_H245H2250LogicalChannelParameters (&lctxt, pvalue->u.h2250LogicalChannelParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannel_reverseLogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannel_reverseLogicalChannelParameters (OOCTXT* pctxt, H245OpenLogicalChannel_reverseLogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.reverseLogicalChannelDependencyPresent ||
pvalue->m.replacementForPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.multiplexParametersPresent);
/* encode dataType */
stat = asn1PE_H245DataType (pctxt, &pvalue->dataType);
if (stat != ASN_OK) return stat;
/* encode multiplexParameters */
if (pvalue->m.multiplexParametersPresent) {
stat = asn1PE_H245OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters (pctxt, &pvalue->multiplexParameters);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reverseLogicalChannelDependencyPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.replacementForPresent);
/* encode extension elements */
if (pvalue->m.reverseLogicalChannelDependencyPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->reverseLogicalChannelDependency);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.replacementForPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->replacementFor);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* NetworkAccessParameters_distribution */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NetworkAccessParameters_distribution (OOCTXT* pctxt, H245NetworkAccessParameters_distribution* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unicast */
case 1:
/* NULL */
break;
/* multicast */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NetworkAccessParameters_networkAddress */
/* */
/**************************************************************/
extern EXTERN const char* gs_MULTIMEDIA_SYSTEM_CONTROL_NetworkAccessParameters_networkAddress_e164Address_CharSet;
EXTERN int asn1PE_H245NetworkAccessParameters_networkAddress (OOCTXT* pctxt, H245NetworkAccessParameters_networkAddress* pvalue)
{
static Asn1SizeCnst e164Address_lsize1 = { 0, 1, 128, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* q2931Address */
case 1:
stat = asn1PE_H245Q2931Address (pctxt, pvalue->u.q2931Address);
if (stat != ASN_OK) return stat;
break;
/* e164Address */
case 2:
addSizeConstraint (pctxt, &e164Address_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->u.e164Address, gs_MULTIMEDIA_SYSTEM_CONTROL_NetworkAccessParameters_networkAddress_e164Address_CharSet, 4, 4, 7);
if (stat != ASN_OK) return stat;
break;
/* localAreaAddress */
case 3:
stat = asn1PE_H245TransportAddress (pctxt, pvalue->u.localAreaAddress);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NetworkAccessParameters_externalReference */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NetworkAccessParameters_externalReference (OOCTXT* pctxt, H245NetworkAccessParameters_externalReference* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 255, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NetworkAccessParameters_t120SetupProcedure */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NetworkAccessParameters_t120SetupProcedure (OOCTXT* pctxt, H245NetworkAccessParameters_t120SetupProcedure* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* originateCall */
case 1:
/* NULL */
break;
/* waitForCall */
case 2:
/* NULL */
break;
/* issueQuery */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NetworkAccessParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NetworkAccessParameters (OOCTXT* pctxt, H245NetworkAccessParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.t120SetupProcedurePresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.distributionPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.externalReferencePresent);
/* encode distribution */
if (pvalue->m.distributionPresent) {
stat = asn1PE_H245NetworkAccessParameters_distribution (pctxt, &pvalue->distribution);
if (stat != ASN_OK) return stat;
}
/* encode networkAddress */
stat = asn1PE_H245NetworkAccessParameters_networkAddress (pctxt, &pvalue->networkAddress);
if (stat != ASN_OK) return stat;
/* encode associateConference */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->associateConference);
if (stat != ASN_OK) return stat;
/* encode externalReference */
if (pvalue->m.externalReferencePresent) {
stat = asn1PE_H245NetworkAccessParameters_externalReference (pctxt, &pvalue->externalReference);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.t120SetupProcedurePresent);
/* encode extension elements */
if (pvalue->m.t120SetupProcedurePresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245NetworkAccessParameters_t120SetupProcedure (&lctxt, &pvalue->t120SetupProcedure);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* EscrowData_escrowValue */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EscrowData_escrowValue (OOCTXT* pctxt, H245EscrowData_escrowValue* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeBitString (pctxt, pvalue->numbits, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EscrowData */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EscrowData (OOCTXT* pctxt, H245EscrowData* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode escrowID */
stat = encodeObjectIdentifier (pctxt, &pvalue->escrowID);
if (stat != ASN_OK) return stat;
/* encode escrowValue */
stat = asn1PE_H245EscrowData_escrowValue (pctxt, &pvalue->escrowValue);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EncryptionSync_escrowentry */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionSync_escrowentry (OOCTXT* pctxt, H245EncryptionSync_escrowentry* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245EscrowData (pctxt, ((H245EscrowData*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* EncryptionSync */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionSync (OOCTXT* pctxt, H245EncryptionSync* pvalue)
{
static Asn1SizeCnst h235Key_lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.escrowentryPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
/* encode synchFlag */
stat = encodeConsUnsigned (pctxt, pvalue->synchFlag, 0U, 255U);
if (stat != ASN_OK) return stat;
/* encode h235Key */
addSizeConstraint (pctxt, &h235Key_lsize1);
stat = encodeOctetString (pctxt, pvalue->h235Key.numocts, pvalue->h235Key.data);
if (stat != ASN_OK) return stat;
/* encode escrowentry */
if (pvalue->m.escrowentryPresent) {
stat = asn1PE_H245EncryptionSync_escrowentry (pctxt, &pvalue->escrowentry);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannel */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannel (OOCTXT* pctxt, H245OpenLogicalChannel* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.separateStackPresent ||
pvalue->m.encryptionSyncPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reverseLogicalChannelParametersPresent);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode forwardLogicalChannelParameters */
stat = asn1PE_H245OpenLogicalChannel_forwardLogicalChannelParameters (pctxt, &pvalue->forwardLogicalChannelParameters);
if (stat != ASN_OK) return stat;
/* encode reverseLogicalChannelParameters */
if (pvalue->m.reverseLogicalChannelParametersPresent) {
stat = asn1PE_H245OpenLogicalChannel_reverseLogicalChannelParameters (pctxt, &pvalue->reverseLogicalChannelParameters);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.separateStackPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.encryptionSyncPresent);
/* encode extension elements */
if (pvalue->m.separateStackPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245NetworkAccessParameters (&lctxt, &pvalue->separateStack);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.encryptionSyncPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245EncryptionSync (&lctxt, &pvalue->encryptionSync);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* CloseLogicalChannel_source */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CloseLogicalChannel_source (OOCTXT* pctxt, H245CloseLogicalChannel_source* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* user */
case 1:
/* NULL */
break;
/* lcse */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* CloseLogicalChannel_reason */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CloseLogicalChannel_reason (OOCTXT* pctxt, H245CloseLogicalChannel_reason* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unknown */
case 1:
/* NULL */
break;
/* reopen */
case 2:
/* NULL */
break;
/* reservationFailure */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* CloseLogicalChannel */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CloseLogicalChannel (OOCTXT* pctxt, H245CloseLogicalChannel* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.reasonPresent);
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode source */
stat = asn1PE_H245CloseLogicalChannel_source (pctxt, &pvalue->source);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reasonPresent);
/* encode extension elements */
if (pvalue->m.reasonPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245CloseLogicalChannel_reason (&lctxt, &pvalue->reason);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelClose_reason */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelClose_reason (OOCTXT* pctxt, H245RequestChannelClose_reason* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unknown */
case 1:
/* NULL */
break;
/* normal */
case 2:
/* NULL */
break;
/* reopen */
case 3:
/* NULL */
break;
/* reservationFailure */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelClose */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelClose (OOCTXT* pctxt, H245RequestChannelClose* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.qosCapabilityPresent ||
pvalue->m.reasonPresent);
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.qosCapabilityPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reasonPresent);
/* encode extension elements */
if (pvalue->m.qosCapabilityPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245QOSCapability (&lctxt, &pvalue->qosCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.reasonPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245RequestChannelClose_reason (&lctxt, &pvalue->reason);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexTableEntryNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexTableEntryNumber (OOCTXT* pctxt, H245MultiplexTableEntryNumber value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 1U, 15U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexElement_type_subElementList */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexElement_type_subElementList (OOCTXT* pctxt, H245MultiplexElement_type_subElementList* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 2, 255, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MultiplexElement (pctxt, (H245MultiplexElement*)((H245MultiplexElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexElement_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexElement_type (OOCTXT* pctxt, H245MultiplexElement_type* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logicalChannelNumber */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.logicalChannelNumber, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* subElementList */
case 2:
stat = asn1PE_H245MultiplexElement_type_subElementList (pctxt, pvalue->u.subElementList);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexElement_repeatCount */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexElement_repeatCount (OOCTXT* pctxt, H245MultiplexElement_repeatCount* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* finite */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.finite, 1U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* untilClosingFlag */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexElement (OOCTXT* pctxt, H245MultiplexElement* pvalue)
{
int stat = ASN_OK;
/* encode type */
stat = asn1PE_H245MultiplexElement_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
/* encode repeatCount */
stat = asn1PE_H245MultiplexElement_repeatCount (pctxt, &pvalue->repeatCount);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntryDescriptor_elementList */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntryDescriptor_elementList (OOCTXT* pctxt, H245MultiplexEntryDescriptor_elementList* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MultiplexElement (pctxt, ((H245MultiplexElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntryDescriptor */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntryDescriptor (OOCTXT* pctxt, H245MultiplexEntryDescriptor* pvalue)
{
int stat = ASN_OK;
encodeBit (pctxt, (ASN1BOOL)pvalue->m.elementListPresent);
/* encode multiplexTableEntryNumber */
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->multiplexTableEntryNumber);
if (stat != ASN_OK) return stat;
/* encode elementList */
if (pvalue->m.elementListPresent) {
stat = asn1PE_H245MultiplexEntryDescriptor_elementList (pctxt, &pvalue->elementList);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySend_multiplexEntryDescriptors */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySend_multiplexEntryDescriptors (OOCTXT* pctxt, H245MultiplexEntrySend_multiplexEntryDescriptors* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MultiplexEntryDescriptor (pctxt, ((H245MultiplexEntryDescriptor*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySend */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySend (OOCTXT* pctxt, H245MultiplexEntrySend* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode multiplexEntryDescriptors */
stat = asn1PE_H245MultiplexEntrySend_multiplexEntryDescriptors (pctxt, &pvalue->multiplexEntryDescriptors);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntry_entryNumbers */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntry_entryNumbers (OOCTXT* pctxt, H245RequestMultiplexEntry_entryNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntry */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntry (OOCTXT* pctxt, H245RequestMultiplexEntry* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode entryNumbers */
stat = asn1PE_H245RequestMultiplexEntry_entryNumbers (pctxt, &pvalue->entryNumbers);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H261VideoMode_resolution */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H261VideoMode_resolution (OOCTXT* pctxt, H245H261VideoMode_resolution* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* qcif */
case 1:
/* NULL */
break;
/* cif */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* H261VideoMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H261VideoMode (OOCTXT* pctxt, H245H261VideoMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode resolution */
stat = asn1PE_H245H261VideoMode_resolution (pctxt, &pvalue->resolution);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 19200U);
if (stat != ASN_OK) return stat;
/* encode stillImageTransmission */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->stillImageTransmission);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H262VideoMode_profileAndLevel */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H262VideoMode_profileAndLevel (OOCTXT* pctxt, H245H262VideoMode_profileAndLevel* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 11);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 10);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* profileAndLevel_SPatML */
case 1:
/* NULL */
break;
/* profileAndLevel_MPatLL */
case 2:
/* NULL */
break;
/* profileAndLevel_MPatML */
case 3:
/* NULL */
break;
/* profileAndLevel_MPatH_14 */
case 4:
/* NULL */
break;
/* profileAndLevel_MPatHL */
case 5:
/* NULL */
break;
/* profileAndLevel_SNRatLL */
case 6:
/* NULL */
break;
/* profileAndLevel_SNRatML */
case 7:
/* NULL */
break;
/* profileAndLevel_SpatialatH_14 */
case 8:
/* NULL */
break;
/* profileAndLevel_HPatML */
case 9:
/* NULL */
break;
/* profileAndLevel_HPatH_14 */
case 10:
/* NULL */
break;
/* profileAndLevel_HPatHL */
case 11:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 12);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H262VideoMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H262VideoMode (OOCTXT* pctxt, H245H262VideoMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.vbvBufferSizePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.samplesPerLinePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.linesPerFramePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.framesPerSecondPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.luminanceSampleRatePresent);
/* encode profileAndLevel */
stat = asn1PE_H245H262VideoMode_profileAndLevel (pctxt, &pvalue->profileAndLevel);
if (stat != ASN_OK) return stat;
/* encode videoBitRate */
if (pvalue->m.videoBitRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->videoBitRate, 0U, 1073741823U);
if (stat != ASN_OK) return stat;
}
/* encode vbvBufferSize */
if (pvalue->m.vbvBufferSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->vbvBufferSize, 0U, 262143U);
if (stat != ASN_OK) return stat;
}
/* encode samplesPerLine */
if (pvalue->m.samplesPerLinePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerLine, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode linesPerFrame */
if (pvalue->m.linesPerFramePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->linesPerFrame, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode framesPerSecond */
if (pvalue->m.framesPerSecondPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->framesPerSecond, 0U, 15U);
if (stat != ASN_OK) return stat;
}
/* encode luminanceSampleRate */
if (pvalue->m.luminanceSampleRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->luminanceSampleRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H263VideoMode_resolution */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263VideoMode_resolution (OOCTXT* pctxt, H245H263VideoMode_resolution* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* sqcif */
case 1:
/* NULL */
break;
/* qcif */
case 2:
/* NULL */
break;
/* cif */
case 3:
/* NULL */
break;
/* cif4 */
case 4:
/* NULL */
break;
/* cif16 */
case 5:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* custom */
case 6:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H263VideoMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H263VideoMode (OOCTXT* pctxt, H245H263VideoMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.errorCompensationPresent ||
pvalue->m.enhancementLayerInfoPresent ||
pvalue->m.h263OptionsPresent);
encodeBit (pctxt, extbit);
/* encode resolution */
stat = asn1PE_H245H263VideoMode_resolution (pctxt, &pvalue->resolution);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 19200U);
if (stat != ASN_OK) return stat;
/* encode unrestrictedVector */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->unrestrictedVector);
if (stat != ASN_OK) return stat;
/* encode arithmeticCoding */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->arithmeticCoding);
if (stat != ASN_OK) return stat;
/* encode advancedPrediction */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->advancedPrediction);
if (stat != ASN_OK) return stat;
/* encode pbFrames */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->pbFrames);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 2);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.errorCompensationPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.enhancementLayerInfoPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h263OptionsPresent);
/* encode extension elements */
if (pvalue->m.errorCompensationPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->errorCompensation);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.enhancementLayerInfoPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245EnhancementLayerInfo (&lctxt, &pvalue->enhancementLayerInfo);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h263OptionsPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H263Options (&lctxt, &pvalue->h263Options);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172VideoMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172VideoMode (OOCTXT* pctxt, H245IS11172VideoMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.videoBitRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.vbvBufferSizePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.samplesPerLinePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.linesPerFramePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.pictureRatePresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.luminanceSampleRatePresent);
/* encode constrainedBitstream */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->constrainedBitstream);
if (stat != ASN_OK) return stat;
/* encode videoBitRate */
if (pvalue->m.videoBitRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->videoBitRate, 0U, 1073741823U);
if (stat != ASN_OK) return stat;
}
/* encode vbvBufferSize */
if (pvalue->m.vbvBufferSizePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->vbvBufferSize, 0U, 262143U);
if (stat != ASN_OK) return stat;
}
/* encode samplesPerLine */
if (pvalue->m.samplesPerLinePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerLine, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode linesPerFrame */
if (pvalue->m.linesPerFramePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->linesPerFrame, 0U, 16383U);
if (stat != ASN_OK) return stat;
}
/* encode pictureRate */
if (pvalue->m.pictureRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->pictureRate, 0U, 15U);
if (stat != ASN_OK) return stat;
}
/* encode luminanceSampleRate */
if (pvalue->m.luminanceSampleRatePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->luminanceSampleRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* VideoMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VideoMode (OOCTXT* pctxt, H245VideoMode* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* h261VideoMode */
case 2:
stat = asn1PE_H245H261VideoMode (pctxt, pvalue->u.h261VideoMode);
if (stat != ASN_OK) return stat;
break;
/* h262VideoMode */
case 3:
stat = asn1PE_H245H262VideoMode (pctxt, pvalue->u.h262VideoMode);
if (stat != ASN_OK) return stat;
break;
/* h263VideoMode */
case 4:
stat = asn1PE_H245H263VideoMode (pctxt, pvalue->u.h263VideoMode);
if (stat != ASN_OK) return stat;
break;
/* is11172VideoMode */
case 5:
stat = asn1PE_H245IS11172VideoMode (pctxt, pvalue->u.is11172VideoMode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* genericVideoMode */
case 6:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericVideoMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* AudioMode_g7231 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioMode_g7231 (OOCTXT* pctxt, H245AudioMode_g7231* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noSilenceSuppressionLowRate */
case 1:
/* NULL */
break;
/* noSilenceSuppressionHighRate */
case 2:
/* NULL */
break;
/* silenceSuppressionLowRate */
case 3:
/* NULL */
break;
/* silenceSuppressionHighRate */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172AudioMode_audioLayer */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172AudioMode_audioLayer (OOCTXT* pctxt, H245IS11172AudioMode_audioLayer* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* audioLayer1 */
case 1:
/* NULL */
break;
/* audioLayer2 */
case 2:
/* NULL */
break;
/* audioLayer3 */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172AudioMode_audioSampling */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172AudioMode_audioSampling (OOCTXT* pctxt, H245IS11172AudioMode_audioSampling* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* audioSampling32k */
case 1:
/* NULL */
break;
/* audioSampling44k1 */
case 2:
/* NULL */
break;
/* audioSampling48k */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172AudioMode_multichannelType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172AudioMode_multichannelType (OOCTXT* pctxt, H245IS11172AudioMode_multichannelType* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* singleChannel */
case 1:
/* NULL */
break;
/* twoChannelStereo */
case 2:
/* NULL */
break;
/* twoChannelDual */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS11172AudioMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS11172AudioMode (OOCTXT* pctxt, H245IS11172AudioMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioLayer */
stat = asn1PE_H245IS11172AudioMode_audioLayer (pctxt, &pvalue->audioLayer);
if (stat != ASN_OK) return stat;
/* encode audioSampling */
stat = asn1PE_H245IS11172AudioMode_audioSampling (pctxt, &pvalue->audioSampling);
if (stat != ASN_OK) return stat;
/* encode multichannelType */
stat = asn1PE_H245IS11172AudioMode_multichannelType (pctxt, &pvalue->multichannelType);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 448U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* IS13818AudioMode_audioLayer */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS13818AudioMode_audioLayer (OOCTXT* pctxt, H245IS13818AudioMode_audioLayer* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* audioLayer1 */
case 1:
/* NULL */
break;
/* audioLayer2 */
case 2:
/* NULL */
break;
/* audioLayer3 */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS13818AudioMode_audioSampling */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS13818AudioMode_audioSampling (OOCTXT* pctxt, H245IS13818AudioMode_audioSampling* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* audioSampling16k */
case 1:
/* NULL */
break;
/* audioSampling22k05 */
case 2:
/* NULL */
break;
/* audioSampling24k */
case 3:
/* NULL */
break;
/* audioSampling32k */
case 4:
/* NULL */
break;
/* audioSampling44k1 */
case 5:
/* NULL */
break;
/* audioSampling48k */
case 6:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS13818AudioMode_multichannelType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS13818AudioMode_multichannelType (OOCTXT* pctxt, H245IS13818AudioMode_multichannelType* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* singleChannel */
case 1:
/* NULL */
break;
/* twoChannelStereo */
case 2:
/* NULL */
break;
/* twoChannelDual */
case 3:
/* NULL */
break;
/* threeChannels2_1 */
case 4:
/* NULL */
break;
/* threeChannels3_0 */
case 5:
/* NULL */
break;
/* fourChannels2_0_2_0 */
case 6:
/* NULL */
break;
/* fourChannels2_2 */
case 7:
/* NULL */
break;
/* fourChannels3_1 */
case 8:
/* NULL */
break;
/* fiveChannels3_0_2_0 */
case 9:
/* NULL */
break;
/* fiveChannels3_2 */
case 10:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* IS13818AudioMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IS13818AudioMode (OOCTXT* pctxt, H245IS13818AudioMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode audioLayer */
stat = asn1PE_H245IS13818AudioMode_audioLayer (pctxt, &pvalue->audioLayer);
if (stat != ASN_OK) return stat;
/* encode audioSampling */
stat = asn1PE_H245IS13818AudioMode_audioSampling (pctxt, &pvalue->audioSampling);
if (stat != ASN_OK) return stat;
/* encode multichannelType */
stat = asn1PE_H245IS13818AudioMode_multichannelType (pctxt, &pvalue->multichannelType);
if (stat != ASN_OK) return stat;
/* encode lowFrequencyEnhancement */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->lowFrequencyEnhancement);
if (stat != ASN_OK) return stat;
/* encode multilingual */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->multilingual);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 1130U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* G7231AnnexCMode_g723AnnexCAudioMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245G7231AnnexCMode_g723AnnexCAudioMode (OOCTXT* pctxt, H245G7231AnnexCMode_g723AnnexCAudioMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode highRateMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->highRateMode0, 27U, 78U);
if (stat != ASN_OK) return stat;
/* encode highRateMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->highRateMode1, 27U, 78U);
if (stat != ASN_OK) return stat;
/* encode lowRateMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->lowRateMode0, 23U, 66U);
if (stat != ASN_OK) return stat;
/* encode lowRateMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->lowRateMode1, 23U, 66U);
if (stat != ASN_OK) return stat;
/* encode sidMode0 */
stat = encodeConsUnsigned (pctxt, pvalue->sidMode0, 6U, 17U);
if (stat != ASN_OK) return stat;
/* encode sidMode1 */
stat = encodeConsUnsigned (pctxt, pvalue->sidMode1, 6U, 17U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* G7231AnnexCMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245G7231AnnexCMode (OOCTXT* pctxt, H245G7231AnnexCMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maxAl_sduAudioFrames */
stat = encodeConsUnsigned (pctxt, pvalue->maxAl_sduAudioFrames, 1U, 256U);
if (stat != ASN_OK) return stat;
/* encode silenceSuppression */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->silenceSuppression);
if (stat != ASN_OK) return stat;
/* encode g723AnnexCAudioMode */
stat = asn1PE_H245G7231AnnexCMode_g723AnnexCAudioMode (pctxt, &pvalue->g723AnnexCAudioMode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VBDMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VBDMode (OOCTXT* pctxt, H245VBDMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245AudioMode (pctxt, (H245AudioMode*)pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* AudioMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245AudioMode (OOCTXT* pctxt, H245AudioMode* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 14);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 13);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* g711Alaw64k */
case 2:
/* NULL */
break;
/* g711Alaw56k */
case 3:
/* NULL */
break;
/* g711Ulaw64k */
case 4:
/* NULL */
break;
/* g711Ulaw56k */
case 5:
/* NULL */
break;
/* g722_64k */
case 6:
/* NULL */
break;
/* g722_56k */
case 7:
/* NULL */
break;
/* g722_48k */
case 8:
/* NULL */
break;
/* g728 */
case 9:
/* NULL */
break;
/* g729 */
case 10:
/* NULL */
break;
/* g729AnnexA */
case 11:
/* NULL */
break;
/* g7231 */
case 12:
stat = asn1PE_H245AudioMode_g7231 (pctxt, pvalue->u.g7231);
if (stat != ASN_OK) return stat;
break;
/* is11172AudioMode */
case 13:
stat = asn1PE_H245IS11172AudioMode (pctxt, pvalue->u.is11172AudioMode);
if (stat != ASN_OK) return stat;
break;
/* is13818AudioMode */
case 14:
stat = asn1PE_H245IS13818AudioMode (pctxt, pvalue->u.is13818AudioMode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 15);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* g729wAnnexB */
case 15:
stat = encodeConsUnsigned (&lctxt, pvalue->u.g729wAnnexB, 1U, 256U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g729AnnexAwAnnexB */
case 16:
stat = encodeConsUnsigned (&lctxt, pvalue->u.g729AnnexAwAnnexB, 1U, 256U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g7231AnnexCMode */
case 17:
stat = asn1PE_H245G7231AnnexCMode (&lctxt, pvalue->u.g7231AnnexCMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmFullRate */
case 18:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmFullRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmHalfRate */
case 19:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmHalfRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* gsmEnhancedFullRate */
case 20:
stat = asn1PE_H245GSMAudioCapability (&lctxt, pvalue->u.gsmEnhancedFullRate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericAudioMode */
case 21:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericAudioMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* g729Extensions */
case 22:
stat = asn1PE_H245G729Extensions (&lctxt, pvalue->u.g729Extensions);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* vbd */
case 23:
stat = asn1PE_H245VBDMode (&lctxt, pvalue->u.vbd);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* DataMode_application_nlpid */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataMode_application_nlpid (OOCTXT* pctxt, H245DataMode_application_nlpid* pvalue)
{
int stat = ASN_OK;
/* encode nlpidProtocol */
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->nlpidProtocol);
if (stat != ASN_OK) return stat;
/* encode nlpidData */
stat = encodeOctetString (pctxt, pvalue->nlpidData.numocts, pvalue->nlpidData.data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DataMode_application_t38fax */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataMode_application_t38fax (OOCTXT* pctxt, H245DataMode_application_t38fax* pvalue)
{
int stat = ASN_OK;
/* encode t38FaxProtocol */
stat = asn1PE_H245DataProtocolCapability (pctxt, &pvalue->t38FaxProtocol);
if (stat != ASN_OK) return stat;
/* encode t38FaxProfile */
stat = asn1PE_H245T38FaxProfile (pctxt, &pvalue->t38FaxProfile);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DataMode_application */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataMode_application (OOCTXT* pctxt, H245DataMode_application* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 10);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* t120 */
case 2:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.t120);
if (stat != ASN_OK) return stat;
break;
/* dsm_cc */
case 3:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.dsm_cc);
if (stat != ASN_OK) return stat;
break;
/* userData */
case 4:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.userData);
if (stat != ASN_OK) return stat;
break;
/* t84 */
case 5:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.t84);
if (stat != ASN_OK) return stat;
break;
/* t434 */
case 6:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.t434);
if (stat != ASN_OK) return stat;
break;
/* h224 */
case 7:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.h224);
if (stat != ASN_OK) return stat;
break;
/* nlpid */
case 8:
stat = asn1PE_H245DataMode_application_nlpid (pctxt, pvalue->u.nlpid);
if (stat != ASN_OK) return stat;
break;
/* dsvdControl */
case 9:
/* NULL */
break;
/* h222DataPartitioning */
case 10:
stat = asn1PE_H245DataProtocolCapability (pctxt, pvalue->u.h222DataPartitioning);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 11);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* t30fax */
case 11:
stat = asn1PE_H245DataProtocolCapability (&lctxt, pvalue->u.t30fax);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* t140 */
case 12:
stat = asn1PE_H245DataProtocolCapability (&lctxt, pvalue->u.t140);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* t38fax */
case 13:
stat = asn1PE_H245DataMode_application_t38fax (&lctxt, pvalue->u.t38fax);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* genericDataMode */
case 14:
stat = asn1PE_H245GenericCapability (&lctxt, pvalue->u.genericDataMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* DataMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DataMode (OOCTXT* pctxt, H245DataMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode application */
stat = asn1PE_H245DataMode_application (pctxt, &pvalue->application);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H235Mode_mediaMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H235Mode_mediaMode (OOCTXT* pctxt, H245H235Mode_mediaMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* videoMode */
case 2:
stat = asn1PE_H245VideoMode (pctxt, pvalue->u.videoMode);
if (stat != ASN_OK) return stat;
break;
/* audioMode */
case 3:
stat = asn1PE_H245AudioMode (pctxt, pvalue->u.audioMode);
if (stat != ASN_OK) return stat;
break;
/* dataMode */
case 4:
stat = asn1PE_H245DataMode (pctxt, pvalue->u.dataMode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H235Mode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H235Mode (OOCTXT* pctxt, H245H235Mode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode encryptionAuthenticationAndIntegrity */
stat = asn1PE_H245EncryptionAuthenticationAndIntegrity (pctxt, &pvalue->encryptionAuthenticationAndIntegrity);
if (stat != ASN_OK) return stat;
/* encode mediaMode */
stat = asn1PE_H245H235Mode_mediaMode (pctxt, &pvalue->mediaMode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingDTModeElement_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingDTModeElement_type (OOCTXT* pctxt, H245RedundancyEncodingDTModeElement_type* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* videoMode */
case 2:
stat = asn1PE_H245VideoMode (pctxt, pvalue->u.videoMode);
if (stat != ASN_OK) return stat;
break;
/* audioMode */
case 3:
stat = asn1PE_H245AudioMode (pctxt, pvalue->u.audioMode);
if (stat != ASN_OK) return stat;
break;
/* dataMode */
case 4:
stat = asn1PE_H245DataMode (pctxt, pvalue->u.dataMode);
if (stat != ASN_OK) return stat;
break;
/* encryptionMode */
case 5:
stat = asn1PE_H245EncryptionMode (pctxt, pvalue->u.encryptionMode);
if (stat != ASN_OK) return stat;
break;
/* h235Mode */
case 6:
stat = asn1PE_H245H235Mode (pctxt, pvalue->u.h235Mode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingDTModeElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingDTModeElement (OOCTXT* pctxt, H245RedundancyEncodingDTModeElement* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245RedundancyEncodingDTModeElement_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245RedundancyEncodingDTModeElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245RedundancyEncodingDTModeElement (OOCTXT* pctxt, H245_SeqOfH245RedundancyEncodingDTModeElement* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245RedundancyEncodingDTModeElement (pctxt, ((H245RedundancyEncodingDTModeElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingDTMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingDTMode (OOCTXT* pctxt, H245RedundancyEncodingDTMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode redundancyEncodingMethod */
stat = asn1PE_H245RedundancyEncodingMethod (pctxt, &pvalue->redundancyEncodingMethod);
if (stat != ASN_OK) return stat;
/* encode primary */
stat = asn1PE_H245RedundancyEncodingDTModeElement (pctxt, &pvalue->primary);
if (stat != ASN_OK) return stat;
/* encode secondary */
stat = asn1PE_H245_SeqOfH245RedundancyEncodingDTModeElement (pctxt, &pvalue->secondary);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStreamElementMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStreamElementMode (OOCTXT* pctxt, H245MultiplePayloadStreamElementMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245ModeElementType (pctxt, (H245ModeElementType*)pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245MultiplePayloadStreamElementMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245MultiplePayloadStreamElementMode (OOCTXT* pctxt, H245_SeqOfH245MultiplePayloadStreamElementMode* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245MultiplePayloadStreamElementMode (pctxt, ((H245MultiplePayloadStreamElementMode*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplePayloadStreamMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplePayloadStreamMode (OOCTXT* pctxt, H245MultiplePayloadStreamMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode elements */
stat = asn1PE_H245_SeqOfH245MultiplePayloadStreamElementMode (pctxt, &pvalue->elements);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECMode_rfc2733Mode_mode_separateStream_differentPort */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode_rfc2733Mode_mode_separateStream_differentPort (OOCTXT* pctxt, H245FECMode_rfc2733Mode_mode_separateStream_differentPort* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.protectedPayloadTypePresent);
/* encode protectedSessionID */
stat = encodeConsUnsigned (pctxt, pvalue->protectedSessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode protectedPayloadType */
if (pvalue->m.protectedPayloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->protectedPayloadType, 0U, 127U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* FECMode_rfc2733Mode_mode_separateStream_samePort */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode_rfc2733Mode_mode_separateStream_samePort (OOCTXT* pctxt, H245FECMode_rfc2733Mode_mode_separateStream_samePort* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode protectedType */
stat = asn1PE_H245ModeElementType (pctxt, (H245ModeElementType*)pvalue->protectedType);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECMode_rfc2733Mode_mode_separateStream */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode_rfc2733Mode_mode_separateStream (OOCTXT* pctxt, H245FECMode_rfc2733Mode_mode_separateStream* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* differentPort */
case 1:
stat = asn1PE_H245FECMode_rfc2733Mode_mode_separateStream_differentPort (pctxt, pvalue->u.differentPort);
if (stat != ASN_OK) return stat;
break;
/* samePort */
case 2:
stat = asn1PE_H245FECMode_rfc2733Mode_mode_separateStream_samePort (pctxt, pvalue->u.samePort);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FECMode_rfc2733Mode_mode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode_rfc2733Mode_mode (OOCTXT* pctxt, H245FECMode_rfc2733Mode_mode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* redundancyEncoding */
case 1:
/* NULL */
break;
/* separateStream */
case 2:
stat = asn1PE_H245FECMode_rfc2733Mode_mode_separateStream (pctxt, pvalue->u.separateStream);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FECMode_rfc2733Mode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode_rfc2733Mode (OOCTXT* pctxt, H245FECMode_rfc2733Mode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode mode */
stat = asn1PE_H245FECMode_rfc2733Mode_mode (pctxt, &pvalue->mode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* FECMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FECMode (OOCTXT* pctxt, H245FECMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* rfc2733Mode */
case 1:
stat = asn1PE_H245FECMode_rfc2733Mode (pctxt, pvalue->u.rfc2733Mode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ModeElementType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ModeElementType (OOCTXT* pctxt, H245ModeElementType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* videoMode */
case 2:
stat = asn1PE_H245VideoMode (pctxt, pvalue->u.videoMode);
if (stat != ASN_OK) return stat;
break;
/* audioMode */
case 3:
stat = asn1PE_H245AudioMode (pctxt, pvalue->u.audioMode);
if (stat != ASN_OK) return stat;
break;
/* dataMode */
case 4:
stat = asn1PE_H245DataMode (pctxt, pvalue->u.dataMode);
if (stat != ASN_OK) return stat;
break;
/* encryptionMode */
case 5:
stat = asn1PE_H245EncryptionMode (pctxt, pvalue->u.encryptionMode);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h235Mode */
case 6:
stat = asn1PE_H245H235Mode (&lctxt, pvalue->u.h235Mode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplexedStreamMode */
case 7:
stat = asn1PE_H245MultiplexedStreamParameter (&lctxt, pvalue->u.multiplexedStreamMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* redundancyEncodingDTMode */
case 8:
stat = asn1PE_H245RedundancyEncodingDTMode (&lctxt, pvalue->u.redundancyEncodingDTMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multiplePayloadStreamMode */
case 9:
stat = asn1PE_H245MultiplePayloadStreamMode (&lctxt, pvalue->u.multiplePayloadStreamMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* fecMode */
case 10:
stat = asn1PE_H245FECMode (&lctxt, pvalue->u.fecMode);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223ModeParameters_adaptationLayerType_al3 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223ModeParameters_adaptationLayerType_al3 (OOCTXT* pctxt, H245H223ModeParameters_adaptationLayerType_al3* pvalue)
{
int stat = ASN_OK;
/* encode controlFieldOctets */
stat = encodeConsUnsigned (pctxt, pvalue->controlFieldOctets, 0U, 2U);
if (stat != ASN_OK) return stat;
/* encode sendBufferSize */
stat = encodeConsUnsigned (pctxt, pvalue->sendBufferSize, 0U, 16777215U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* H223ModeParameters_adaptationLayerType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223ModeParameters_adaptationLayerType (OOCTXT* pctxt, H245H223ModeParameters_adaptationLayerType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* al1Framed */
case 2:
/* NULL */
break;
/* al1NotFramed */
case 3:
/* NULL */
break;
/* al2WithoutSequenceNumbers */
case 4:
/* NULL */
break;
/* al2WithSequenceNumbers */
case 5:
/* NULL */
break;
/* al3 */
case 6:
stat = asn1PE_H245H223ModeParameters_adaptationLayerType_al3 (pctxt, pvalue->u.al3);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* al1M */
case 7:
stat = asn1PE_H245H223AL1MParameters (&lctxt, pvalue->u.al1M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* al2M */
case 8:
stat = asn1PE_H245H223AL2MParameters (&lctxt, pvalue->u.al2M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* al3M */
case 9:
stat = asn1PE_H245H223AL3MParameters (&lctxt, pvalue->u.al3M);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223ModeParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223ModeParameters (OOCTXT* pctxt, H245H223ModeParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode adaptationLayerType */
stat = asn1PE_H245H223ModeParameters_adaptationLayerType (pctxt, &pvalue->adaptationLayerType);
if (stat != ASN_OK) return stat;
/* encode segmentableFlag */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->segmentableFlag);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* V76ModeParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245V76ModeParameters (OOCTXT* pctxt, H245V76ModeParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* suspendResumewAddress */
case 1:
/* NULL */
break;
/* suspendResumewoAddress */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingMode_secondaryEncoding */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingMode_secondaryEncoding (OOCTXT* pctxt, H245RedundancyEncodingMode_secondaryEncoding* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* audioData */
case 2:
stat = asn1PE_H245AudioMode (pctxt, pvalue->u.audioData);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RedundancyEncodingMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RedundancyEncodingMode (OOCTXT* pctxt, H245RedundancyEncodingMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.secondaryEncodingPresent);
/* encode redundancyEncodingMethod */
stat = asn1PE_H245RedundancyEncodingMethod (pctxt, &pvalue->redundancyEncodingMethod);
if (stat != ASN_OK) return stat;
/* encode secondaryEncoding */
if (pvalue->m.secondaryEncodingPresent) {
stat = asn1PE_H245RedundancyEncodingMode_secondaryEncoding (pctxt, &pvalue->secondaryEncoding);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H2250ModeParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250ModeParameters (OOCTXT* pctxt, H245H2250ModeParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.redundancyEncodingModePresent);
/* encode redundancyEncodingMode */
if (pvalue->m.redundancyEncodingModePresent) {
stat = asn1PE_H245RedundancyEncodingMode (pctxt, &pvalue->redundancyEncodingMode);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexedStreamModeParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexedStreamModeParameters (OOCTXT* pctxt, H245MultiplexedStreamModeParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ModeElement */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ModeElement (OOCTXT* pctxt, H245ModeElement* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.v76ModeParametersPresent ||
pvalue->m.h2250ModeParametersPresent ||
pvalue->m.genericModeParametersPresent ||
pvalue->m.multiplexedStreamModeParametersPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h223ModeParametersPresent);
/* encode type */
stat = asn1PE_H245ModeElementType (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
/* encode h223ModeParameters */
if (pvalue->m.h223ModeParametersPresent) {
stat = asn1PE_H245H223ModeParameters (pctxt, &pvalue->h223ModeParameters);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 3);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.v76ModeParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.h2250ModeParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.genericModeParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.multiplexedStreamModeParametersPresent);
/* encode extension elements */
if (pvalue->m.v76ModeParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245V76ModeParameters (&lctxt, &pvalue->v76ModeParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.h2250ModeParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245H2250ModeParameters (&lctxt, &pvalue->h2250ModeParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.genericModeParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245GenericCapability (&lctxt, &pvalue->genericModeParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.multiplexedStreamModeParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245MultiplexedStreamModeParameters (&lctxt, &pvalue->multiplexedStreamModeParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* ModeDescription */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ModeDescription (OOCTXT* pctxt, H245ModeDescription* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245ModeElement (pctxt, ((H245ModeElement*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMode_requestedModes */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMode_requestedModes (OOCTXT* pctxt, H245RequestMode_requestedModes* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245ModeDescription (pctxt, ((H245ModeDescription*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMode (OOCTXT* pctxt, H245RequestMode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode requestedModes */
stat = asn1PE_H245RequestMode_requestedModes (pctxt, &pvalue->requestedModes);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RoundTripDelayRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RoundTripDelayRequest (OOCTXT* pctxt, H245RoundTripDelayRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopRequest_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopRequest_type (OOCTXT* pctxt, H245MaintenanceLoopRequest_type* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* systemLoop */
case 1:
/* NULL */
break;
/* mediaLoop */
case 2:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.mediaLoop);
if (stat != ASN_OK) return stat;
break;
/* logicalChannelLoop */
case 3:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelLoop);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopRequest (OOCTXT* pctxt, H245MaintenanceLoopRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245MaintenanceLoopRequest_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeRequest (OOCTXT* pctxt, H245CommunicationModeRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* Criteria */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Criteria (OOCTXT* pctxt, H245Criteria* pvalue)
{
static Asn1SizeCnst value_lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode field */
stat = encodeObjectIdentifier (pctxt, &pvalue->field);
if (stat != ASN_OK) return stat;
/* encode value */
addSizeConstraint (pctxt, &value_lsize1);
stat = encodeOctetString (pctxt, pvalue->value.numocts, pvalue->value.data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CertSelectionCriteria */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CertSelectionCriteria (OOCTXT* pctxt, H245CertSelectionCriteria* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 16, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245Criteria (pctxt, ((H245Criteria*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceRequest_requestTerminalCertificate */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceRequest_requestTerminalCertificate (OOCTXT* pctxt, H245ConferenceRequest_requestTerminalCertificate* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.terminalLabelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.certSelectionCriteriaPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sRandomPresent);
/* encode terminalLabel */
if (pvalue->m.terminalLabelPresent) {
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
}
/* encode certSelectionCriteria */
if (pvalue->m.certSelectionCriteriaPresent) {
stat = asn1PE_H245CertSelectionCriteria (pctxt, &pvalue->certSelectionCriteria);
if (stat != ASN_OK) return stat;
}
/* encode sRandom */
if (pvalue->m.sRandomPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sRandom, 1U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RemoteMCRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RemoteMCRequest (OOCTXT* pctxt, H245RemoteMCRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* masterActivate */
case 1:
/* NULL */
break;
/* slaveActivate */
case 2:
/* NULL */
break;
/* deActivate */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceRequest (OOCTXT* pctxt, H245ConferenceRequest* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 8);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 7);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* terminalListRequest */
case 1:
/* NULL */
break;
/* makeMeChair */
case 2:
/* NULL */
break;
/* cancelMakeMeChair */
case 3:
/* NULL */
break;
/* dropTerminal */
case 4:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.dropTerminal);
if (stat != ASN_OK) return stat;
break;
/* requestTerminalID */
case 5:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.requestTerminalID);
if (stat != ASN_OK) return stat;
break;
/* enterH243Password */
case 6:
/* NULL */
break;
/* enterH243TerminalID */
case 7:
/* NULL */
break;
/* enterH243ConferenceID */
case 8:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 9);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* enterExtensionAddress */
case 9:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* requestChairTokenOwner */
case 10:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* requestTerminalCertificate */
case 11:
stat = asn1PE_H245ConferenceRequest_requestTerminalCertificate (&lctxt, pvalue->u.requestTerminalCertificate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* broadcastMyLogicalChannel */
case 12:
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->u.broadcastMyLogicalChannel);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* makeTerminalBroadcaster */
case 13:
stat = asn1PE_H245TerminalLabel (&lctxt, pvalue->u.makeTerminalBroadcaster);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* sendThisSource */
case 14:
stat = asn1PE_H245TerminalLabel (&lctxt, pvalue->u.sendThisSource);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* requestAllTerminalIDs */
case 15:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* remoteMCRequest */
case 16:
stat = asn1PE_H245RemoteMCRequest (&lctxt, pvalue->u.remoteMCRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest_callInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest_callInformation (OOCTXT* pctxt, H245MultilinkRequest_callInformation* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode maxNumberOfAdditionalConnections */
stat = encodeConsUnsigned (pctxt, pvalue->maxNumberOfAdditionalConnections, 1U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DialingInformationNetworkType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DialingInformationNetworkType (OOCTXT* pctxt, H245DialingInformationNetworkType* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* n_isdn */
case 2:
/* NULL */
break;
/* gstn */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* mobile */
case 4:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* DialingInformationNumber_networkType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DialingInformationNumber_networkType (OOCTXT* pctxt, H245DialingInformationNumber_networkType* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 255, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245DialingInformationNetworkType (pctxt, ((H245DialingInformationNetworkType*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* DialingInformationNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DialingInformationNumber (OOCTXT* pctxt, H245DialingInformationNumber* pvalue)
{
static Asn1SizeCnst networkAddress_lsize1 = { 0, 0, 40, 0 };
static Asn1SizeCnst subAddress_lsize1 = { 0, 1, 40, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.subAddressPresent);
/* encode networkAddress */
addSizeConstraint (pctxt, &networkAddress_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->networkAddress, NUM_CANSET, 4, 4, 4);
if (stat != ASN_OK) return stat;
/* encode subAddress */
if (pvalue->m.subAddressPresent) {
addSizeConstraint (pctxt, &subAddress_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->subAddress, 0, 8, 7, 7);
if (stat != ASN_OK) return stat;
}
/* encode networkType */
stat = asn1PE_H245DialingInformationNumber_networkType (pctxt, &pvalue->networkType);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* DialingInformation_differential */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DialingInformation_differential (OOCTXT* pctxt, H245DialingInformation_differential* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245DialingInformationNumber (pctxt, ((H245DialingInformationNumber*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* DialingInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245DialingInformation (OOCTXT* pctxt, H245DialingInformation* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* differential */
case 2:
stat = asn1PE_H245DialingInformation_differential (pctxt, pvalue->u.differential);
if (stat != ASN_OK) return stat;
break;
/* infoNotAvailable */
case 3:
stat = encodeConsUnsigned (pctxt, pvalue->u.infoNotAvailable, 1U, 65535U);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest_addConnection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest_addConnection (OOCTXT* pctxt, H245MultilinkRequest_addConnection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode dialingInformation */
stat = asn1PE_H245DialingInformation (pctxt, &pvalue->dialingInformation);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConnectionIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConnectionIdentifier (OOCTXT* pctxt, H245ConnectionIdentifier* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode channelTag */
stat = encodeConsUnsigned (pctxt, pvalue->channelTag, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
/* encode sequenceNumber */
stat = encodeConsUnsigned (pctxt, pvalue->sequenceNumber, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest_removeConnection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest_removeConnection (OOCTXT* pctxt, H245MultilinkRequest_removeConnection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode connectionIdentifier */
stat = asn1PE_H245ConnectionIdentifier (pctxt, &pvalue->connectionIdentifier);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest_maximumHeaderInterval_requestType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest_maximumHeaderInterval_requestType (OOCTXT* pctxt, H245MultilinkRequest_maximumHeaderInterval_requestType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* currentIntervalInformation */
case 1:
/* NULL */
break;
/* requestedInterval */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.requestedInterval, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest_maximumHeaderInterval */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest_maximumHeaderInterval (OOCTXT* pctxt, H245MultilinkRequest_maximumHeaderInterval* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode requestType */
stat = asn1PE_H245MultilinkRequest_maximumHeaderInterval_requestType (pctxt, &pvalue->requestType);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkRequest (OOCTXT* pctxt, H245MultilinkRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* callInformation */
case 2:
stat = asn1PE_H245MultilinkRequest_callInformation (pctxt, pvalue->u.callInformation);
if (stat != ASN_OK) return stat;
break;
/* addConnection */
case 3:
stat = asn1PE_H245MultilinkRequest_addConnection (pctxt, pvalue->u.addConnection);
if (stat != ASN_OK) return stat;
break;
/* removeConnection */
case 4:
stat = asn1PE_H245MultilinkRequest_removeConnection (pctxt, pvalue->u.removeConnection);
if (stat != ASN_OK) return stat;
break;
/* maximumHeaderInterval */
case 5:
stat = asn1PE_H245MultilinkRequest_maximumHeaderInterval (pctxt, pvalue->u.maximumHeaderInterval);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MaximumBitRate */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaximumBitRate (OOCTXT* pctxt, H245MaximumBitRate value)
{
int stat = ASN_OK;
stat = encodeConsUnsigned (pctxt, value, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelRateRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelRateRequest (OOCTXT* pctxt, H245LogicalChannelRateRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode maximumBitRate */
stat = asn1PE_H245MaximumBitRate (pctxt, pvalue->maximumBitRate);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMessage (OOCTXT* pctxt, H245RequestMessage* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 11);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 10);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* masterSlaveDetermination */
case 2:
stat = asn1PE_H245MasterSlaveDetermination (pctxt, pvalue->u.masterSlaveDetermination);
if (stat != ASN_OK) return stat;
break;
/* terminalCapabilitySet */
case 3:
stat = asn1PE_H245TerminalCapabilitySet (pctxt, pvalue->u.terminalCapabilitySet);
if (stat != ASN_OK) return stat;
break;
/* openLogicalChannel */
case 4:
stat = asn1PE_H245OpenLogicalChannel (pctxt, pvalue->u.openLogicalChannel);
if (stat != ASN_OK) return stat;
break;
/* closeLogicalChannel */
case 5:
stat = asn1PE_H245CloseLogicalChannel (pctxt, pvalue->u.closeLogicalChannel);
if (stat != ASN_OK) return stat;
break;
/* requestChannelClose */
case 6:
stat = asn1PE_H245RequestChannelClose (pctxt, pvalue->u.requestChannelClose);
if (stat != ASN_OK) return stat;
break;
/* multiplexEntrySend */
case 7:
stat = asn1PE_H245MultiplexEntrySend (pctxt, pvalue->u.multiplexEntrySend);
if (stat != ASN_OK) return stat;
break;
/* requestMultiplexEntry */
case 8:
stat = asn1PE_H245RequestMultiplexEntry (pctxt, pvalue->u.requestMultiplexEntry);
if (stat != ASN_OK) return stat;
break;
/* requestMode */
case 9:
stat = asn1PE_H245RequestMode (pctxt, pvalue->u.requestMode);
if (stat != ASN_OK) return stat;
break;
/* roundTripDelayRequest */
case 10:
stat = asn1PE_H245RoundTripDelayRequest (pctxt, pvalue->u.roundTripDelayRequest);
if (stat != ASN_OK) return stat;
break;
/* maintenanceLoopRequest */
case 11:
stat = asn1PE_H245MaintenanceLoopRequest (pctxt, pvalue->u.maintenanceLoopRequest);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 12);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* communicationModeRequest */
case 12:
stat = asn1PE_H245CommunicationModeRequest (&lctxt, pvalue->u.communicationModeRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* conferenceRequest */
case 13:
stat = asn1PE_H245ConferenceRequest (&lctxt, pvalue->u.conferenceRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multilinkRequest */
case 14:
stat = asn1PE_H245MultilinkRequest (&lctxt, pvalue->u.multilinkRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* logicalChannelRateRequest */
case 15:
stat = asn1PE_H245LogicalChannelRateRequest (&lctxt, pvalue->u.logicalChannelRateRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDeterminationAck_decision */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDeterminationAck_decision (OOCTXT* pctxt, H245MasterSlaveDeterminationAck_decision* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* master */
case 1:
/* NULL */
break;
/* slave */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDeterminationAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDeterminationAck (OOCTXT* pctxt, H245MasterSlaveDeterminationAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode decision */
stat = asn1PE_H245MasterSlaveDeterminationAck_decision (pctxt, &pvalue->decision);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDeterminationReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDeterminationReject_cause (OOCTXT* pctxt, H245MasterSlaveDeterminationReject_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* identicalNumbers */
case 1:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDeterminationReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDeterminationReject (OOCTXT* pctxt, H245MasterSlaveDeterminationReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode cause */
stat = asn1PE_H245MasterSlaveDeterminationReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySetAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySetAck (OOCTXT* pctxt, H245TerminalCapabilitySetAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySetReject_cause_tableEntryCapacityExce */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded (OOCTXT* pctxt, H245TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* highestEntryNumberProcessed */
case 1:
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->u.highestEntryNumberProcessed);
if (stat != ASN_OK) return stat;
break;
/* noneProcessed */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySetReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySetReject_cause (OOCTXT* pctxt, H245TerminalCapabilitySetReject_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecified */
case 1:
/* NULL */
break;
/* undefinedTableEntryUsed */
case 2:
/* NULL */
break;
/* descriptorCapacityExceeded */
case 3:
/* NULL */
break;
/* tableEntryCapacityExceeded */
case 4:
stat = asn1PE_H245TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded (pctxt, pvalue->u.tableEntryCapacityExceeded);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySetReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySetReject (OOCTXT* pctxt, H245TerminalCapabilitySetReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245TerminalCapabilitySetReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelAck_reverseLogicalChannelParameters_mu */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters (OOCTXT* pctxt, H245OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h222LogicalChannelParameters */
case 1:
stat = asn1PE_H245H222LogicalChannelParameters (pctxt, pvalue->u.h222LogicalChannelParameters);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h2250LogicalChannelParameters */
case 2:
stat = asn1PE_H245H2250LogicalChannelParameters (&lctxt, pvalue->u.h2250LogicalChannelParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelAck_reverseLogicalChannelParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelAck_reverseLogicalChannelParameters (OOCTXT* pctxt, H245OpenLogicalChannelAck_reverseLogicalChannelParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.replacementForPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.portNumberPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.multiplexParametersPresent);
/* encode reverseLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->reverseLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode portNumber */
if (pvalue->m.portNumberPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->portNumber, 0U, 65535U);
if (stat != ASN_OK) return stat;
}
/* encode multiplexParameters */
if (pvalue->m.multiplexParametersPresent) {
stat = asn1PE_H245OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters (pctxt, &pvalue->multiplexParameters);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.replacementForPresent);
/* encode extension elements */
if (pvalue->m.replacementForPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245LogicalChannelNumber (&lctxt, pvalue->replacementFor);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* H2250LogicalChannelAckParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250LogicalChannelAckParameters (OOCTXT* pctxt, H245H2250LogicalChannelAckParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.flowControlToZeroPresent ||
pvalue->m.portNumberPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sessionIDPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaControlChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.dynamicRTPPayloadTypePresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245_SeqOfH245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
/* encode sessionID */
if (pvalue->m.sessionIDPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->sessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
}
/* encode mediaChannel */
if (pvalue->m.mediaChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaChannel);
if (stat != ASN_OK) return stat;
}
/* encode mediaControlChannel */
if (pvalue->m.mediaControlChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaControlChannel);
if (stat != ASN_OK) return stat;
}
/* encode dynamicRTPPayloadType */
if (pvalue->m.dynamicRTPPayloadTypePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->dynamicRTPPayloadType, 96U, 127U);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 1);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.flowControlToZeroPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.portNumberPresent);
/* encode extension elements */
if (pvalue->m.flowControlToZeroPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeBit (&lctxt, (ASN1BOOL)pvalue->flowControlToZero);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.portNumberPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->portNumber, 0U, 65535U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelAck_forwardMultiplexAckParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelAck_forwardMultiplexAckParameters (OOCTXT* pctxt, H245OpenLogicalChannelAck_forwardMultiplexAckParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h2250LogicalChannelAckParameters */
case 1:
stat = asn1PE_H245H2250LogicalChannelAckParameters (pctxt, pvalue->u.h2250LogicalChannelAckParameters);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelAck (OOCTXT* pctxt, H245OpenLogicalChannelAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.separateStackPresent ||
pvalue->m.forwardMultiplexAckParametersPresent ||
pvalue->m.encryptionSyncPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reverseLogicalChannelParametersPresent);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode reverseLogicalChannelParameters */
if (pvalue->m.reverseLogicalChannelParametersPresent) {
stat = asn1PE_H245OpenLogicalChannelAck_reverseLogicalChannelParameters (pctxt, &pvalue->reverseLogicalChannelParameters);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 2);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.separateStackPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.forwardMultiplexAckParametersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.encryptionSyncPresent);
/* encode extension elements */
if (pvalue->m.separateStackPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245NetworkAccessParameters (&lctxt, &pvalue->separateStack);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.forwardMultiplexAckParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245OpenLogicalChannelAck_forwardMultiplexAckParameters (&lctxt, &pvalue->forwardMultiplexAckParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.encryptionSyncPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245EncryptionSync (&lctxt, &pvalue->encryptionSync);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelReject_cause (OOCTXT* pctxt, H245OpenLogicalChannelReject_cause* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 6);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 5);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecified */
case 1:
/* NULL */
break;
/* unsuitableReverseParameters */
case 2:
/* NULL */
break;
/* dataTypeNotSupported */
case 3:
/* NULL */
break;
/* dataTypeNotAvailable */
case 4:
/* NULL */
break;
/* unknownDataType */
case 5:
/* NULL */
break;
/* dataTypeALCombinationNotSupported */
case 6:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 7);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* multicastChannelNotAllowed */
case 7:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* insufficientBandwidth */
case 8:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* separateStackEstablishmentFailed */
case 9:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* invalidSessionID */
case 10:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* masterSlaveConflict */
case 11:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* waitForCommunicationMode */
case 12:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* invalidDependentChannel */
case 13:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* replacementForRejected */
case 14:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelReject (OOCTXT* pctxt, H245OpenLogicalChannelReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245OpenLogicalChannelReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CloseLogicalChannelAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CloseLogicalChannelAck (OOCTXT* pctxt, H245CloseLogicalChannelAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelCloseAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelCloseAck (OOCTXT* pctxt, H245RequestChannelCloseAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelCloseReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelCloseReject_cause (OOCTXT* pctxt, H245RequestChannelCloseReject_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecified */
case 1:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelCloseReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelCloseReject (OOCTXT* pctxt, H245RequestChannelCloseReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245RequestChannelCloseReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendAck_multiplexTableEntryNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendAck_multiplexTableEntryNumber (OOCTXT* pctxt, H245MultiplexEntrySendAck_multiplexTableEntryNumber* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendAck (OOCTXT* pctxt, H245MultiplexEntrySendAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode multiplexTableEntryNumber */
stat = asn1PE_H245MultiplexEntrySendAck_multiplexTableEntryNumber (pctxt, &pvalue->multiplexTableEntryNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntryRejectionDescriptions_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntryRejectionDescriptions_cause (OOCTXT* pctxt, H245MultiplexEntryRejectionDescriptions_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecifiedCause */
case 1:
/* NULL */
break;
/* descriptorTooComplex */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntryRejectionDescriptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntryRejectionDescriptions (OOCTXT* pctxt, H245MultiplexEntryRejectionDescriptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode multiplexTableEntryNumber */
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->multiplexTableEntryNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245MultiplexEntryRejectionDescriptions_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendReject_rejectionDescriptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendReject_rejectionDescriptions (OOCTXT* pctxt, H245MultiplexEntrySendReject_rejectionDescriptions* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245MultiplexEntryRejectionDescriptions (pctxt, ((H245MultiplexEntryRejectionDescriptions*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendReject (OOCTXT* pctxt, H245MultiplexEntrySendReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode rejectionDescriptions */
stat = asn1PE_H245MultiplexEntrySendReject_rejectionDescriptions (pctxt, &pvalue->rejectionDescriptions);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryAck_entryNumbers */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryAck_entryNumbers (OOCTXT* pctxt, H245RequestMultiplexEntryAck_entryNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryAck (OOCTXT* pctxt, H245RequestMultiplexEntryAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode entryNumbers */
stat = asn1PE_H245RequestMultiplexEntryAck_entryNumbers (pctxt, &pvalue->entryNumbers);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryReject_entryNumbers */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryReject_entryNumbers (OOCTXT* pctxt, H245RequestMultiplexEntryReject_entryNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryRejectionDescriptions_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryRejectionDescriptions_cause (OOCTXT* pctxt, H245RequestMultiplexEntryRejectionDescriptions_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecifiedCause */
case 1:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryRejectionDescriptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryRejectionDescriptions (OOCTXT* pctxt, H245RequestMultiplexEntryRejectionDescriptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode multiplexTableEntryNumber */
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->multiplexTableEntryNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245RequestMultiplexEntryRejectionDescriptions_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryReject_rejectionDescriptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryReject_rejectionDescriptions (OOCTXT* pctxt, H245RequestMultiplexEntryReject_rejectionDescriptions* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245RequestMultiplexEntryRejectionDescriptions (pctxt, ((H245RequestMultiplexEntryRejectionDescriptions*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryReject (OOCTXT* pctxt, H245RequestMultiplexEntryReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode entryNumbers */
stat = asn1PE_H245RequestMultiplexEntryReject_entryNumbers (pctxt, &pvalue->entryNumbers);
if (stat != ASN_OK) return stat;
/* encode rejectionDescriptions */
stat = asn1PE_H245RequestMultiplexEntryReject_rejectionDescriptions (pctxt, &pvalue->rejectionDescriptions);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestModeAck_response */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestModeAck_response (OOCTXT* pctxt, H245RequestModeAck_response* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* willTransmitMostPreferredMode */
case 1:
/* NULL */
break;
/* willTransmitLessPreferredMode */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RequestModeAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestModeAck (OOCTXT* pctxt, H245RequestModeAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode response */
stat = asn1PE_H245RequestModeAck_response (pctxt, &pvalue->response);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestModeReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestModeReject_cause (OOCTXT* pctxt, H245RequestModeReject_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* modeUnavailable */
case 1:
/* NULL */
break;
/* multipointConstraint */
case 2:
/* NULL */
break;
/* requestDenied */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RequestModeReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestModeReject (OOCTXT* pctxt, H245RequestModeReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245RequestModeReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RoundTripDelayResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RoundTripDelayResponse (OOCTXT* pctxt, H245RoundTripDelayResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopAck_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopAck_type (OOCTXT* pctxt, H245MaintenanceLoopAck_type* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* systemLoop */
case 1:
/* NULL */
break;
/* mediaLoop */
case 2:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.mediaLoop);
if (stat != ASN_OK) return stat;
break;
/* logicalChannelLoop */
case 3:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelLoop);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopAck */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopAck (OOCTXT* pctxt, H245MaintenanceLoopAck* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245MaintenanceLoopAck_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopReject_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopReject_type (OOCTXT* pctxt, H245MaintenanceLoopReject_type* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* systemLoop */
case 1:
/* NULL */
break;
/* mediaLoop */
case 2:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.mediaLoop);
if (stat != ASN_OK) return stat;
break;
/* logicalChannelLoop */
case 3:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelLoop);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopReject_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopReject_cause (OOCTXT* pctxt, H245MaintenanceLoopReject_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* canNotPerformLoop */
case 1:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopReject (OOCTXT* pctxt, H245MaintenanceLoopReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode type */
stat = asn1PE_H245MaintenanceLoopReject_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
/* encode cause */
stat = asn1PE_H245MaintenanceLoopReject_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeTableEntry_dataType */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeTableEntry_dataType (OOCTXT* pctxt, H245CommunicationModeTableEntry_dataType* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* videoData */
case 1:
stat = asn1PE_H245VideoCapability (pctxt, pvalue->u.videoData);
if (stat != ASN_OK) return stat;
break;
/* audioData */
case 2:
stat = asn1PE_H245AudioCapability (pctxt, pvalue->u.audioData);
if (stat != ASN_OK) return stat;
break;
/* data */
case 3:
stat = asn1PE_H245DataApplicationCapability (pctxt, pvalue->u.data);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeTableEntry */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeTableEntry (OOCTXT* pctxt, H245CommunicationModeTableEntry* pvalue)
{
static Asn1SizeCnst sessionDescription_lsize1 = { 0, 1, 128, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.redundancyEncodingPresent ||
pvalue->m.sessionDependencyPresent ||
pvalue->m.destinationPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.nonStandardPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.associatedSessionIDPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.terminalLabelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaGuaranteedDeliveryPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaControlChannelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.mediaControlGuaranteedDeliveryPresent);
/* encode nonStandard */
if (pvalue->m.nonStandardPresent) {
stat = asn1PE_H245_SeqOfH245NonStandardParameter (pctxt, &pvalue->nonStandard);
if (stat != ASN_OK) return stat;
}
/* encode sessionID */
stat = encodeConsUnsigned (pctxt, pvalue->sessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode associatedSessionID */
if (pvalue->m.associatedSessionIDPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->associatedSessionID, 1U, 255U);
if (stat != ASN_OK) return stat;
}
/* encode terminalLabel */
if (pvalue->m.terminalLabelPresent) {
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
}
/* encode sessionDescription */
addSizeConstraint (pctxt, &sessionDescription_lsize1);
stat = encodeBMPString (pctxt, pvalue->sessionDescription, 0);
if (stat != ASN_OK) return stat;
/* encode dataType */
stat = asn1PE_H245CommunicationModeTableEntry_dataType (pctxt, &pvalue->dataType);
if (stat != ASN_OK) return stat;
/* encode mediaChannel */
if (pvalue->m.mediaChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaChannel);
if (stat != ASN_OK) return stat;
}
/* encode mediaGuaranteedDelivery */
if (pvalue->m.mediaGuaranteedDeliveryPresent) {
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->mediaGuaranteedDelivery);
if (stat != ASN_OK) return stat;
}
/* encode mediaControlChannel */
if (pvalue->m.mediaControlChannelPresent) {
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->mediaControlChannel);
if (stat != ASN_OK) return stat;
}
/* encode mediaControlGuaranteedDelivery */
if (pvalue->m.mediaControlGuaranteedDeliveryPresent) {
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->mediaControlGuaranteedDelivery);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 2);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.redundancyEncodingPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.sessionDependencyPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.destinationPresent);
/* encode extension elements */
if (pvalue->m.redundancyEncodingPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245RedundancyEncoding (&lctxt, &pvalue->redundancyEncoding);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.sessionDependencyPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeConsUnsigned (&lctxt, pvalue->sessionDependency, 1U, 255U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
if (pvalue->m.destinationPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245TerminalLabel (&lctxt, &pvalue->destination);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeResponse_communicationModeTable */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeResponse_communicationModeTable (OOCTXT* pctxt, H245CommunicationModeResponse_communicationModeTable* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CommunicationModeTableEntry (pctxt, ((H245CommunicationModeTableEntry*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeResponse (OOCTXT* pctxt, H245CommunicationModeResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 1);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 0);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* communicationModeTable */
case 1:
stat = asn1PE_H245CommunicationModeResponse_communicationModeTable (pctxt, pvalue->u.communicationModeTable);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 2);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalID */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalID (OOCTXT* pctxt, H245TerminalID* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 128, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_mCTerminalIDResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_mCTerminalIDResponse (OOCTXT* pctxt, H245ConferenceResponse_mCTerminalIDResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode terminalID */
stat = asn1PE_H245TerminalID (pctxt, &pvalue->terminalID);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_terminalIDResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_terminalIDResponse (OOCTXT* pctxt, H245ConferenceResponse_terminalIDResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode terminalID */
stat = asn1PE_H245TerminalID (pctxt, &pvalue->terminalID);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceID */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceID (OOCTXT* pctxt, H245ConferenceID* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 32, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_conferenceIDResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_conferenceIDResponse (OOCTXT* pctxt, H245ConferenceResponse_conferenceIDResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode conferenceID */
stat = asn1PE_H245ConferenceID (pctxt, &pvalue->conferenceID);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* Password */
/* */
/**************************************************************/
EXTERN int asn1PE_H245Password (OOCTXT* pctxt, H245Password* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 32, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_passwordResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_passwordResponse (OOCTXT* pctxt, H245ConferenceResponse_passwordResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode password */
stat = asn1PE_H245Password (pctxt, &pvalue->password);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_terminalListResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_terminalListResponse (OOCTXT* pctxt, H245ConferenceResponse_terminalListResponse* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245TerminalLabel (pctxt, ((H245TerminalLabel*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_makeMeChairResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_makeMeChairResponse (OOCTXT* pctxt, H245ConferenceResponse_makeMeChairResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* grantedChairToken */
case 1:
/* NULL */
break;
/* deniedChairToken */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_extensionAddressResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_extensionAddressResponse (OOCTXT* pctxt, H245ConferenceResponse_extensionAddressResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode extensionAddress */
stat = asn1PE_H245TerminalID (pctxt, &pvalue->extensionAddress);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_chairTokenOwnerResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_chairTokenOwnerResponse (OOCTXT* pctxt, H245ConferenceResponse_chairTokenOwnerResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode terminalID */
stat = asn1PE_H245TerminalID (pctxt, &pvalue->terminalID);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_terminalCertificateResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_terminalCertificateResponse (OOCTXT* pctxt, H245ConferenceResponse_terminalCertificateResponse* pvalue)
{
static Asn1SizeCnst certificateResponse_lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.terminalLabelPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.certificateResponsePresent);
/* encode terminalLabel */
if (pvalue->m.terminalLabelPresent) {
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
}
/* encode certificateResponse */
if (pvalue->m.certificateResponsePresent) {
addSizeConstraint (pctxt, &certificateResponse_lsize1);
stat = encodeOctetString (pctxt, pvalue->certificateResponse.numocts, pvalue->certificateResponse.data);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_broadcastMyLogicalChannelResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_broadcastMyLogicalChannelResponse (OOCTXT* pctxt, H245ConferenceResponse_broadcastMyLogicalChannelResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* grantedBroadcastMyLogicalChannel */
case 1:
/* NULL */
break;
/* deniedBroadcastMyLogicalChannel */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_makeTerminalBroadcasterResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_makeTerminalBroadcasterResponse (OOCTXT* pctxt, H245ConferenceResponse_makeTerminalBroadcasterResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* grantedMakeTerminalBroadcaster */
case 1:
/* NULL */
break;
/* deniedMakeTerminalBroadcaster */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse_sendThisSourceResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse_sendThisSourceResponse (OOCTXT* pctxt, H245ConferenceResponse_sendThisSourceResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* grantedSendThisSource */
case 1:
/* NULL */
break;
/* deniedSendThisSource */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* TerminalInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalInformation (OOCTXT* pctxt, H245TerminalInformation* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalLabel */
stat = asn1PE_H245TerminalLabel (pctxt, &pvalue->terminalLabel);
if (stat != ASN_OK) return stat;
/* encode terminalID */
stat = asn1PE_H245TerminalID (pctxt, &pvalue->terminalID);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245TerminalInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245TerminalInformation (OOCTXT* pctxt, H245_SeqOfH245TerminalInformation* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245TerminalInformation (pctxt, ((H245TerminalInformation*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* RequestAllTerminalIDsResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestAllTerminalIDsResponse (OOCTXT* pctxt, H245RequestAllTerminalIDsResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalInformation */
stat = asn1PE_H245_SeqOfH245TerminalInformation (pctxt, &pvalue->terminalInformation);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RemoteMCResponse_reject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RemoteMCResponse_reject (OOCTXT* pctxt, H245RemoteMCResponse_reject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* unspecified */
case 1:
/* NULL */
break;
/* functionNotSupported */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* RemoteMCResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RemoteMCResponse (OOCTXT* pctxt, H245RemoteMCResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* accept */
case 1:
/* NULL */
break;
/* reject */
case 2:
stat = asn1PE_H245RemoteMCResponse_reject (pctxt, pvalue->u.reject);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* ConferenceResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceResponse (OOCTXT* pctxt, H245ConferenceResponse* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 8);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 7);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* mCTerminalIDResponse */
case 1:
stat = asn1PE_H245ConferenceResponse_mCTerminalIDResponse (pctxt, pvalue->u.mCTerminalIDResponse);
if (stat != ASN_OK) return stat;
break;
/* terminalIDResponse */
case 2:
stat = asn1PE_H245ConferenceResponse_terminalIDResponse (pctxt, pvalue->u.terminalIDResponse);
if (stat != ASN_OK) return stat;
break;
/* conferenceIDResponse */
case 3:
stat = asn1PE_H245ConferenceResponse_conferenceIDResponse (pctxt, pvalue->u.conferenceIDResponse);
if (stat != ASN_OK) return stat;
break;
/* passwordResponse */
case 4:
stat = asn1PE_H245ConferenceResponse_passwordResponse (pctxt, pvalue->u.passwordResponse);
if (stat != ASN_OK) return stat;
break;
/* terminalListResponse */
case 5:
stat = asn1PE_H245ConferenceResponse_terminalListResponse (pctxt, pvalue->u.terminalListResponse);
if (stat != ASN_OK) return stat;
break;
/* videoCommandReject */
case 6:
/* NULL */
break;
/* terminalDropReject */
case 7:
/* NULL */
break;
/* makeMeChairResponse */
case 8:
stat = asn1PE_H245ConferenceResponse_makeMeChairResponse (pctxt, pvalue->u.makeMeChairResponse);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 9);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* extensionAddressResponse */
case 9:
stat = asn1PE_H245ConferenceResponse_extensionAddressResponse (&lctxt, pvalue->u.extensionAddressResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* chairTokenOwnerResponse */
case 10:
stat = asn1PE_H245ConferenceResponse_chairTokenOwnerResponse (&lctxt, pvalue->u.chairTokenOwnerResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* terminalCertificateResponse */
case 11:
stat = asn1PE_H245ConferenceResponse_terminalCertificateResponse (&lctxt, pvalue->u.terminalCertificateResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* broadcastMyLogicalChannelResponse */
case 12:
stat = asn1PE_H245ConferenceResponse_broadcastMyLogicalChannelResponse (&lctxt, pvalue->u.broadcastMyLogicalChannelResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* makeTerminalBroadcasterResponse */
case 13:
stat = asn1PE_H245ConferenceResponse_makeTerminalBroadcasterResponse (&lctxt, pvalue->u.makeTerminalBroadcasterResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* sendThisSourceResponse */
case 14:
stat = asn1PE_H245ConferenceResponse_sendThisSourceResponse (&lctxt, pvalue->u.sendThisSourceResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* requestAllTerminalIDsResponse */
case 15:
stat = asn1PE_H245RequestAllTerminalIDsResponse (&lctxt, pvalue->u.requestAllTerminalIDsResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* remoteMCResponse */
case 16:
stat = asn1PE_H245RemoteMCResponse (&lctxt, pvalue->u.remoteMCResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_callInformation */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_callInformation (OOCTXT* pctxt, H245MultilinkResponse_callInformation* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode dialingInformation */
stat = asn1PE_H245DialingInformation (pctxt, &pvalue->dialingInformation);
if (stat != ASN_OK) return stat;
/* encode callAssociationNumber */
stat = encodeConsUnsigned (pctxt, pvalue->callAssociationNumber, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_addConnection_responseCode_rejected */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_addConnection_responseCode_rejected (OOCTXT* pctxt, H245MultilinkResponse_addConnection_responseCode_rejected* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* connectionsNotAvailable */
case 1:
/* NULL */
break;
/* userRejected */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_addConnection_responseCode */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_addConnection_responseCode (OOCTXT* pctxt, H245MultilinkResponse_addConnection_responseCode* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* accepted */
case 1:
/* NULL */
break;
/* rejected */
case 2:
stat = asn1PE_H245MultilinkResponse_addConnection_responseCode_rejected (pctxt, pvalue->u.rejected);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_addConnection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_addConnection (OOCTXT* pctxt, H245MultilinkResponse_addConnection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode responseCode */
stat = asn1PE_H245MultilinkResponse_addConnection_responseCode (pctxt, &pvalue->responseCode);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_removeConnection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_removeConnection (OOCTXT* pctxt, H245MultilinkResponse_removeConnection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode connectionIdentifier */
stat = asn1PE_H245ConnectionIdentifier (pctxt, &pvalue->connectionIdentifier);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse_maximumHeaderInterval */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse_maximumHeaderInterval (OOCTXT* pctxt, H245MultilinkResponse_maximumHeaderInterval* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode currentInterval */
stat = encodeConsUnsigned (pctxt, pvalue->currentInterval, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkResponse */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkResponse (OOCTXT* pctxt, H245MultilinkResponse* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* callInformation */
case 2:
stat = asn1PE_H245MultilinkResponse_callInformation (pctxt, pvalue->u.callInformation);
if (stat != ASN_OK) return stat;
break;
/* addConnection */
case 3:
stat = asn1PE_H245MultilinkResponse_addConnection (pctxt, pvalue->u.addConnection);
if (stat != ASN_OK) return stat;
break;
/* removeConnection */
case 4:
stat = asn1PE_H245MultilinkResponse_removeConnection (pctxt, pvalue->u.removeConnection);
if (stat != ASN_OK) return stat;
break;
/* maximumHeaderInterval */
case 5:
stat = asn1PE_H245MultilinkResponse_maximumHeaderInterval (pctxt, pvalue->u.maximumHeaderInterval);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelRateAcknowledge */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelRateAcknowledge (OOCTXT* pctxt, H245LogicalChannelRateAcknowledge* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode maximumBitRate */
stat = asn1PE_H245MaximumBitRate (pctxt, pvalue->maximumBitRate);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelRateRejectReason */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelRateRejectReason (OOCTXT* pctxt, H245LogicalChannelRateRejectReason* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* undefinedReason */
case 1:
/* NULL */
break;
/* insufficientResources */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelRateReject */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelRateReject (OOCTXT* pctxt, H245LogicalChannelRateReject* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.currentMaximumBitRatePresent);
/* encode sequenceNumber */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->sequenceNumber);
if (stat != ASN_OK) return stat;
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode rejectReason */
stat = asn1PE_H245LogicalChannelRateRejectReason (pctxt, &pvalue->rejectReason);
if (stat != ASN_OK) return stat;
/* encode currentMaximumBitRate */
if (pvalue->m.currentMaximumBitRatePresent) {
stat = asn1PE_H245MaximumBitRate (pctxt, pvalue->currentMaximumBitRate);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* ResponseMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ResponseMessage (OOCTXT* pctxt, H245ResponseMessage* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 19);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 18);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* masterSlaveDeterminationAck */
case 2:
stat = asn1PE_H245MasterSlaveDeterminationAck (pctxt, pvalue->u.masterSlaveDeterminationAck);
if (stat != ASN_OK) return stat;
break;
/* masterSlaveDeterminationReject */
case 3:
stat = asn1PE_H245MasterSlaveDeterminationReject (pctxt, pvalue->u.masterSlaveDeterminationReject);
if (stat != ASN_OK) return stat;
break;
/* terminalCapabilitySetAck */
case 4:
stat = asn1PE_H245TerminalCapabilitySetAck (pctxt, pvalue->u.terminalCapabilitySetAck);
if (stat != ASN_OK) return stat;
break;
/* terminalCapabilitySetReject */
case 5:
stat = asn1PE_H245TerminalCapabilitySetReject (pctxt, pvalue->u.terminalCapabilitySetReject);
if (stat != ASN_OK) return stat;
break;
/* openLogicalChannelAck */
case 6:
stat = asn1PE_H245OpenLogicalChannelAck (pctxt, pvalue->u.openLogicalChannelAck);
if (stat != ASN_OK) return stat;
break;
/* openLogicalChannelReject */
case 7:
stat = asn1PE_H245OpenLogicalChannelReject (pctxt, pvalue->u.openLogicalChannelReject);
if (stat != ASN_OK) return stat;
break;
/* closeLogicalChannelAck */
case 8:
stat = asn1PE_H245CloseLogicalChannelAck (pctxt, pvalue->u.closeLogicalChannelAck);
if (stat != ASN_OK) return stat;
break;
/* requestChannelCloseAck */
case 9:
stat = asn1PE_H245RequestChannelCloseAck (pctxt, pvalue->u.requestChannelCloseAck);
if (stat != ASN_OK) return stat;
break;
/* requestChannelCloseReject */
case 10:
stat = asn1PE_H245RequestChannelCloseReject (pctxt, pvalue->u.requestChannelCloseReject);
if (stat != ASN_OK) return stat;
break;
/* multiplexEntrySendAck */
case 11:
stat = asn1PE_H245MultiplexEntrySendAck (pctxt, pvalue->u.multiplexEntrySendAck);
if (stat != ASN_OK) return stat;
break;
/* multiplexEntrySendReject */
case 12:
stat = asn1PE_H245MultiplexEntrySendReject (pctxt, pvalue->u.multiplexEntrySendReject);
if (stat != ASN_OK) return stat;
break;
/* requestMultiplexEntryAck */
case 13:
stat = asn1PE_H245RequestMultiplexEntryAck (pctxt, pvalue->u.requestMultiplexEntryAck);
if (stat != ASN_OK) return stat;
break;
/* requestMultiplexEntryReject */
case 14:
stat = asn1PE_H245RequestMultiplexEntryReject (pctxt, pvalue->u.requestMultiplexEntryReject);
if (stat != ASN_OK) return stat;
break;
/* requestModeAck */
case 15:
stat = asn1PE_H245RequestModeAck (pctxt, pvalue->u.requestModeAck);
if (stat != ASN_OK) return stat;
break;
/* requestModeReject */
case 16:
stat = asn1PE_H245RequestModeReject (pctxt, pvalue->u.requestModeReject);
if (stat != ASN_OK) return stat;
break;
/* roundTripDelayResponse */
case 17:
stat = asn1PE_H245RoundTripDelayResponse (pctxt, pvalue->u.roundTripDelayResponse);
if (stat != ASN_OK) return stat;
break;
/* maintenanceLoopAck */
case 18:
stat = asn1PE_H245MaintenanceLoopAck (pctxt, pvalue->u.maintenanceLoopAck);
if (stat != ASN_OK) return stat;
break;
/* maintenanceLoopReject */
case 19:
stat = asn1PE_H245MaintenanceLoopReject (pctxt, pvalue->u.maintenanceLoopReject);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 20);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* communicationModeResponse */
case 20:
stat = asn1PE_H245CommunicationModeResponse (&lctxt, pvalue->u.communicationModeResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* conferenceResponse */
case 21:
stat = asn1PE_H245ConferenceResponse (&lctxt, pvalue->u.conferenceResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multilinkResponse */
case 22:
stat = asn1PE_H245MultilinkResponse (&lctxt, pvalue->u.multilinkResponse);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* logicalChannelRateAcknowledge */
case 23:
stat = asn1PE_H245LogicalChannelRateAcknowledge (&lctxt, pvalue->u.logicalChannelRateAcknowledge);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* logicalChannelRateReject */
case 24:
stat = asn1PE_H245LogicalChannelRateReject (&lctxt, pvalue->u.logicalChannelRateReject);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MaintenanceLoopOffCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MaintenanceLoopOffCommand (OOCTXT* pctxt, H245MaintenanceLoopOffCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* SendTerminalCapabilitySet_specificRequest_capabilityTabl */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers (OOCTXT* pctxt, H245SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 65535, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245CapabilityTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* SendTerminalCapabilitySet_specificRequest_capabilityDesc */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers (OOCTXT* pctxt, H245SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245CapabilityDescriptorNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* SendTerminalCapabilitySet_specificRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SendTerminalCapabilitySet_specificRequest (OOCTXT* pctxt, H245SendTerminalCapabilitySet_specificRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityTableEntryNumbersPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.capabilityDescriptorNumbersPresent);
/* encode multiplexCapability */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->multiplexCapability);
if (stat != ASN_OK) return stat;
/* encode capabilityTableEntryNumbers */
if (pvalue->m.capabilityTableEntryNumbersPresent) {
stat = asn1PE_H245SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers (pctxt, &pvalue->capabilityTableEntryNumbers);
if (stat != ASN_OK) return stat;
}
/* encode capabilityDescriptorNumbers */
if (pvalue->m.capabilityDescriptorNumbersPresent) {
stat = asn1PE_H245SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers (pctxt, &pvalue->capabilityDescriptorNumbers);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* SendTerminalCapabilitySet */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SendTerminalCapabilitySet (OOCTXT* pctxt, H245SendTerminalCapabilitySet* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* specificRequest */
case 1:
stat = asn1PE_H245SendTerminalCapabilitySet_specificRequest (pctxt, pvalue->u.specificRequest);
if (stat != ASN_OK) return stat;
break;
/* genericRequest */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* EncryptionCommand_encryptionAlgorithmID */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionCommand_encryptionAlgorithmID (OOCTXT* pctxt, H245EncryptionCommand_encryptionAlgorithmID* pvalue)
{
int stat = ASN_OK;
/* encode h233AlgorithmIdentifier */
stat = asn1PE_H245SequenceNumber (pctxt, pvalue->h233AlgorithmIdentifier);
if (stat != ASN_OK) return stat;
/* encode associatedAlgorithm */
stat = asn1PE_H245NonStandardParameter (pctxt, &pvalue->associatedAlgorithm);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EncryptionCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionCommand (OOCTXT* pctxt, H245EncryptionCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* encryptionSE */
case 1:
stat = encodeOctetString (pctxt, pvalue->u.encryptionSE->numocts, pvalue->u.encryptionSE->data);
if (stat != ASN_OK) return stat;
break;
/* encryptionIVRequest */
case 2:
/* NULL */
break;
/* encryptionAlgorithmID */
case 3:
stat = asn1PE_H245EncryptionCommand_encryptionAlgorithmID (pctxt, pvalue->u.encryptionAlgorithmID);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FlowControlCommand_scope */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlCommand_scope (OOCTXT* pctxt, H245FlowControlCommand_scope* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logicalChannelNumber */
case 1:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelNumber);
if (stat != ASN_OK) return stat;
break;
/* resourceID */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* wholeMultiplex */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* FlowControlCommand_restriction */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlCommand_restriction (OOCTXT* pctxt, H245FlowControlCommand_restriction* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* maximumBitRate */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.maximumBitRate, 0U, 16777215U);
if (stat != ASN_OK) return stat;
break;
/* noRestriction */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* FlowControlCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlCommand (OOCTXT* pctxt, H245FlowControlCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode scope */
stat = asn1PE_H245FlowControlCommand_scope (pctxt, &pvalue->scope);
if (stat != ASN_OK) return stat;
/* encode restriction */
stat = asn1PE_H245FlowControlCommand_restriction (pctxt, &pvalue->restriction);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EndSessionCommand_gstnOptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EndSessionCommand_gstnOptions (OOCTXT* pctxt, H245EndSessionCommand_gstnOptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 5);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 4);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* telephonyMode */
case 1:
/* NULL */
break;
/* v8bis */
case 2:
/* NULL */
break;
/* v34DSVD */
case 3:
/* NULL */
break;
/* v34DuplexFAX */
case 4:
/* NULL */
break;
/* v34H324 */
case 5:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 6);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* EndSessionCommand_isdnOptions */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EndSessionCommand_isdnOptions (OOCTXT* pctxt, H245EndSessionCommand_isdnOptions* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* telephonyMode */
case 1:
/* NULL */
break;
/* v140 */
case 2:
/* NULL */
break;
/* terminalOnHold */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* EndSessionCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EndSessionCommand (OOCTXT* pctxt, H245EndSessionCommand* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* disconnect */
case 2:
/* NULL */
break;
/* gstnOptions */
case 3:
stat = asn1PE_H245EndSessionCommand_gstnOptions (pctxt, pvalue->u.gstnOptions);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* isdnOptions */
case 4:
stat = asn1PE_H245EndSessionCommand_isdnOptions (&lctxt, pvalue->u.isdnOptions);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_videoFastUpdateGOB */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_videoFastUpdateGOB (OOCTXT* pctxt, H245MiscellaneousCommand_type_videoFastUpdateGOB* pvalue)
{
int stat = ASN_OK;
/* encode firstGOB */
stat = encodeConsUnsigned (pctxt, pvalue->firstGOB, 0U, 17U);
if (stat != ASN_OK) return stat;
/* encode numberOfGOBs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfGOBs, 1U, 18U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_videoFastUpdateMB */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_videoFastUpdateMB (OOCTXT* pctxt, H245MiscellaneousCommand_type_videoFastUpdateMB* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.firstGOBPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.firstMBPresent);
/* encode firstGOB */
if (pvalue->m.firstGOBPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->firstGOB, 0U, 255U);
if (stat != ASN_OK) return stat;
}
/* encode firstMB */
if (pvalue->m.firstMBPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->firstMB, 1U, 8192U);
if (stat != ASN_OK) return stat;
}
/* encode numberOfMBs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfMBs, 1U, 8192U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* KeyProtectionMethod */
/* */
/**************************************************************/
EXTERN int asn1PE_H245KeyProtectionMethod (OOCTXT* pctxt, H245KeyProtectionMethod* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode secureChannel */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->secureChannel);
if (stat != ASN_OK) return stat;
/* encode sharedSecret */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->sharedSecret);
if (stat != ASN_OK) return stat;
/* encode certProtectedKey */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->certProtectedKey);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* EncryptionUpdateRequest */
/* */
/**************************************************************/
EXTERN int asn1PE_H245EncryptionUpdateRequest (OOCTXT* pctxt, H245EncryptionUpdateRequest* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.keyProtectionMethodPresent);
/* encode keyProtectionMethod */
if (pvalue->m.keyProtectionMethodPresent) {
stat = asn1PE_H245KeyProtectionMethod (pctxt, &pvalue->keyProtectionMethod);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_progressiveRefinementStart_rep */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_progressiveRefinementStart_repeatCount (OOCTXT* pctxt, H245MiscellaneousCommand_type_progressiveRefinementStart_repeatCount* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* doOneProgression */
case 1:
/* NULL */
break;
/* doContinuousProgressions */
case 2:
/* NULL */
break;
/* doOneIndependentProgression */
case 3:
/* NULL */
break;
/* doContinuousIndependentProgressions */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_progressiveRefinementStart */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_progressiveRefinementStart (OOCTXT* pctxt, H245MiscellaneousCommand_type_progressiveRefinementStart* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode repeatCount */
stat = asn1PE_H245MiscellaneousCommand_type_progressiveRefinementStart_repeatCount (pctxt, &pvalue->repeatCount);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_videoBadMBs */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_videoBadMBs (OOCTXT* pctxt, H245MiscellaneousCommand_type_videoBadMBs* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode firstMB */
stat = encodeConsUnsigned (pctxt, pvalue->firstMB, 1U, 9216U);
if (stat != ASN_OK) return stat;
/* encode numberOfMBs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfMBs, 1U, 9216U);
if (stat != ASN_OK) return stat;
/* encode temporalReference */
stat = encodeConsUnsigned (pctxt, pvalue->temporalReference, 0U, 1023U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* PictureReference */
/* */
/**************************************************************/
EXTERN int asn1PE_H245PictureReference (OOCTXT* pctxt, H245PictureReference* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* pictureNumber */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.pictureNumber, 0U, 1023U);
if (stat != ASN_OK) return stat;
break;
/* longTermPictureIndex */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.longTermPictureIndex, 0U, 255U);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* _SeqOfH245PictureReference */
/* */
/**************************************************************/
EXTERN int asn1PE_H245_SeqOfH245PictureReference (OOCTXT* pctxt, H245_SeqOfH245PictureReference* pvalue)
{
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
ASN1UINT enclen, fraglen;
enclen = fraglen = xx1 = 0;
pnode = pvalue->head;
for (;;) {
/* encode length determinant */
stat = encodeLength (pctxt, (pvalue->count - enclen));
if (stat < 0) return stat;
fraglen = stat;
enclen += fraglen;
/* encode elements */
for (; xx1 < enclen; xx1++) {
stat = asn1PE_H245PictureReference (pctxt, ((H245PictureReference*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
if ( pvalue->count == enclen && fraglen < 16384) {
break;
}
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type_lostPartialPicture */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type_lostPartialPicture (OOCTXT* pctxt, H245MiscellaneousCommand_type_lostPartialPicture* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode pictureReference */
stat = asn1PE_H245PictureReference (pctxt, &pvalue->pictureReference);
if (stat != ASN_OK) return stat;
/* encode firstMB */
stat = encodeConsUnsigned (pctxt, pvalue->firstMB, 1U, 9216U);
if (stat != ASN_OK) return stat;
/* encode numberOfMBs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfMBs, 1U, 9216U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand_type (OOCTXT* pctxt, H245MiscellaneousCommand_type* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 10);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* equaliseDelay */
case 1:
/* NULL */
break;
/* zeroDelay */
case 2:
/* NULL */
break;
/* multipointModeCommand */
case 3:
/* NULL */
break;
/* cancelMultipointModeCommand */
case 4:
/* NULL */
break;
/* videoFreezePicture */
case 5:
/* NULL */
break;
/* videoFastUpdatePicture */
case 6:
/* NULL */
break;
/* videoFastUpdateGOB */
case 7:
stat = asn1PE_H245MiscellaneousCommand_type_videoFastUpdateGOB (pctxt, pvalue->u.videoFastUpdateGOB);
if (stat != ASN_OK) return stat;
break;
/* videoTemporalSpatialTradeOff */
case 8:
stat = encodeConsUnsigned (pctxt, pvalue->u.videoTemporalSpatialTradeOff, 0U, 31U);
if (stat != ASN_OK) return stat;
break;
/* videoSendSyncEveryGOB */
case 9:
/* NULL */
break;
/* videoSendSyncEveryGOBCancel */
case 10:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 11);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* videoFastUpdateMB */
case 11:
stat = asn1PE_H245MiscellaneousCommand_type_videoFastUpdateMB (&lctxt, pvalue->u.videoFastUpdateMB);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* maxH223MUXPDUsize */
case 12:
stat = encodeConsUnsigned (&lctxt, pvalue->u.maxH223MUXPDUsize, 1U, 65535U);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* encryptionUpdate */
case 13:
stat = asn1PE_H245EncryptionSync (&lctxt, pvalue->u.encryptionUpdate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* encryptionUpdateRequest */
case 14:
stat = asn1PE_H245EncryptionUpdateRequest (&lctxt, pvalue->u.encryptionUpdateRequest);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* switchReceiveMediaOff */
case 15:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* switchReceiveMediaOn */
case 16:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* progressiveRefinementStart */
case 17:
stat = asn1PE_H245MiscellaneousCommand_type_progressiveRefinementStart (&lctxt, pvalue->u.progressiveRefinementStart);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* progressiveRefinementAbortOne */
case 18:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* progressiveRefinementAbortContinuous */
case 19:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* videoBadMBs */
case 20:
stat = asn1PE_H245MiscellaneousCommand_type_videoBadMBs (&lctxt, pvalue->u.videoBadMBs);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* lostPicture */
case 21:
stat = asn1PE_H245_SeqOfH245PictureReference (&lctxt, pvalue->u.lostPicture);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* lostPartialPicture */
case 22:
stat = asn1PE_H245MiscellaneousCommand_type_lostPartialPicture (&lctxt, pvalue->u.lostPartialPicture);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* recoveryReferencePicture */
case 23:
stat = asn1PE_H245_SeqOfH245PictureReference (&lctxt, pvalue->u.recoveryReferencePicture);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousCommand (OOCTXT* pctxt, H245MiscellaneousCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode type */
stat = asn1PE_H245MiscellaneousCommand_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeCommand_communicationModeTable */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeCommand_communicationModeTable (OOCTXT* pctxt, H245CommunicationModeCommand_communicationModeTable* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
DListNode* pnode;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->count);
if (stat < 0) return stat;
/* encode elements */
pnode = pvalue->head;
for (xx1 = 0; xx1 < pvalue->count; xx1++) {
stat = asn1PE_H245CommunicationModeTableEntry (pctxt, ((H245CommunicationModeTableEntry*)pnode->data));
if (stat != ASN_OK) return stat;
pnode = pnode->next;
}
return (stat);
}
/**************************************************************/
/* */
/* CommunicationModeCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommunicationModeCommand (OOCTXT* pctxt, H245CommunicationModeCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode communicationModeTable */
stat = asn1PE_H245CommunicationModeCommand_communicationModeTable (pctxt, &pvalue->communicationModeTable);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* SubstituteConferenceIDCommand_conferenceIdentifier */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SubstituteConferenceIDCommand_conferenceIdentifier (OOCTXT* pctxt, H245SubstituteConferenceIDCommand_conferenceIdentifier* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 16, 16, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* SubstituteConferenceIDCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245SubstituteConferenceIDCommand (OOCTXT* pctxt, H245SubstituteConferenceIDCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode conferenceIdentifier */
stat = asn1PE_H245SubstituteConferenceIDCommand_conferenceIdentifier (pctxt, &pvalue->conferenceIdentifier);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceCommand (OOCTXT* pctxt, H245ConferenceCommand* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 7);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 6);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* broadcastMyLogicalChannel */
case 1:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.broadcastMyLogicalChannel);
if (stat != ASN_OK) return stat;
break;
/* cancelBroadcastMyLogicalChannel */
case 2:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.cancelBroadcastMyLogicalChannel);
if (stat != ASN_OK) return stat;
break;
/* makeTerminalBroadcaster */
case 3:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.makeTerminalBroadcaster);
if (stat != ASN_OK) return stat;
break;
/* cancelMakeTerminalBroadcaster */
case 4:
/* NULL */
break;
/* sendThisSource */
case 5:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.sendThisSource);
if (stat != ASN_OK) return stat;
break;
/* cancelSendThisSource */
case 6:
/* NULL */
break;
/* dropConference */
case 7:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 8);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* substituteConferenceIDCommand */
case 8:
stat = asn1PE_H245SubstituteConferenceIDCommand (&lctxt, pvalue->u.substituteConferenceIDCommand);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H223MultiplexReconfiguration_h223ModeChange */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223MultiplexReconfiguration_h223ModeChange (OOCTXT* pctxt, H245H223MultiplexReconfiguration_h223ModeChange* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* toLevel0 */
case 1:
/* NULL */
break;
/* toLevel1 */
case 2:
/* NULL */
break;
/* toLevel2 */
case 3:
/* NULL */
break;
/* toLevel2withOptionalHeader */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223MultiplexReconfiguration_h223AnnexADoubleFlag */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223MultiplexReconfiguration_h223AnnexADoubleFlag (OOCTXT* pctxt, H245H223MultiplexReconfiguration_h223AnnexADoubleFlag* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* start */
case 1:
/* NULL */
break;
/* stop */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* H223MultiplexReconfiguration */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223MultiplexReconfiguration (OOCTXT* pctxt, H245H223MultiplexReconfiguration* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* h223ModeChange */
case 1:
stat = asn1PE_H245H223MultiplexReconfiguration_h223ModeChange (pctxt, pvalue->u.h223ModeChange);
if (stat != ASN_OK) return stat;
break;
/* h223AnnexADoubleFlag */
case 2:
stat = asn1PE_H245H223MultiplexReconfiguration_h223AnnexADoubleFlag (pctxt, pvalue->u.h223AnnexADoubleFlag);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_aal_aal1_clockRecovery */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_aal_aal1_clockRecovery (OOCTXT* pctxt, H245NewATMVCCommand_aal_aal1_clockRecovery* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nullClockRecovery */
case 1:
/* NULL */
break;
/* srtsClockRecovery */
case 2:
/* NULL */
break;
/* adaptiveClockRecovery */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_aal_aal1_errorCorrection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_aal_aal1_errorCorrection (OOCTXT* pctxt, H245NewATMVCCommand_aal_aal1_errorCorrection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nullErrorCorrection */
case 1:
/* NULL */
break;
/* longInterleaver */
case 2:
/* NULL */
break;
/* shortInterleaver */
case 3:
/* NULL */
break;
/* errorCorrectionOnly */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_aal_aal1 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_aal_aal1 (OOCTXT* pctxt, H245NewATMVCCommand_aal_aal1* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode clockRecovery */
stat = asn1PE_H245NewATMVCCommand_aal_aal1_clockRecovery (pctxt, &pvalue->clockRecovery);
if (stat != ASN_OK) return stat;
/* encode errorCorrection */
stat = asn1PE_H245NewATMVCCommand_aal_aal1_errorCorrection (pctxt, &pvalue->errorCorrection);
if (stat != ASN_OK) return stat;
/* encode structuredDataTransfer */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->structuredDataTransfer);
if (stat != ASN_OK) return stat;
/* encode partiallyFilledCells */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partiallyFilledCells);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_aal_aal5 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_aal_aal5 (OOCTXT* pctxt, H245NewATMVCCommand_aal_aal5* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->forwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode backwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->backwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_aal */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_aal (OOCTXT* pctxt, H245NewATMVCCommand_aal* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* aal1 */
case 1:
stat = asn1PE_H245NewATMVCCommand_aal_aal1 (pctxt, pvalue->u.aal1);
if (stat != ASN_OK) return stat;
break;
/* aal5 */
case 2:
stat = asn1PE_H245NewATMVCCommand_aal_aal5 (pctxt, pvalue->u.aal5);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_multiplex */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_multiplex (OOCTXT* pctxt, H245NewATMVCCommand_multiplex* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noMultiplex */
case 1:
/* NULL */
break;
/* transportStream */
case 2:
/* NULL */
break;
/* programStream */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_reverseParameters_multiplex */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_reverseParameters_multiplex (OOCTXT* pctxt, H245NewATMVCCommand_reverseParameters_multiplex* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noMultiplex */
case 1:
/* NULL */
break;
/* transportStream */
case 2:
/* NULL */
break;
/* programStream */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand_reverseParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand_reverseParameters (OOCTXT* pctxt, H245NewATMVCCommand_reverseParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToPCRClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToPCRClock);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToNetworkClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToNetworkClock);
if (stat != ASN_OK) return stat;
/* encode multiplex */
stat = asn1PE_H245NewATMVCCommand_reverseParameters_multiplex (pctxt, &pvalue->multiplex);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCCommand (OOCTXT* pctxt, H245NewATMVCCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode resourceID */
stat = encodeConsUnsigned (pctxt, pvalue->resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToPCRClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToPCRClock);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToNetworkClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToNetworkClock);
if (stat != ASN_OK) return stat;
/* encode aal */
stat = asn1PE_H245NewATMVCCommand_aal (pctxt, &pvalue->aal);
if (stat != ASN_OK) return stat;
/* encode multiplex */
stat = asn1PE_H245NewATMVCCommand_multiplex (pctxt, &pvalue->multiplex);
if (stat != ASN_OK) return stat;
/* encode reverseParameters */
stat = asn1PE_H245NewATMVCCommand_reverseParameters (pctxt, &pvalue->reverseParameters);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MobileMultilinkReconfigurationCommand_status */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MobileMultilinkReconfigurationCommand_status (OOCTXT* pctxt, H245MobileMultilinkReconfigurationCommand_status* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* synchronized_ */
case 1:
/* NULL */
break;
/* reconfiguration */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* MobileMultilinkReconfigurationCommand */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MobileMultilinkReconfigurationCommand (OOCTXT* pctxt, H245MobileMultilinkReconfigurationCommand* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sampleSize */
stat = encodeConsUnsigned (pctxt, pvalue->sampleSize, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode samplesPerFrame */
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerFrame, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode status */
stat = asn1PE_H245MobileMultilinkReconfigurationCommand_status (pctxt, &pvalue->status);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* CommandMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245CommandMessage (OOCTXT* pctxt, H245CommandMessage* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 7);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 6);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* maintenanceLoopOffCommand */
case 2:
stat = asn1PE_H245MaintenanceLoopOffCommand (pctxt, pvalue->u.maintenanceLoopOffCommand);
if (stat != ASN_OK) return stat;
break;
/* sendTerminalCapabilitySet */
case 3:
stat = asn1PE_H245SendTerminalCapabilitySet (pctxt, pvalue->u.sendTerminalCapabilitySet);
if (stat != ASN_OK) return stat;
break;
/* encryptionCommand */
case 4:
stat = asn1PE_H245EncryptionCommand (pctxt, pvalue->u.encryptionCommand);
if (stat != ASN_OK) return stat;
break;
/* flowControlCommand */
case 5:
stat = asn1PE_H245FlowControlCommand (pctxt, pvalue->u.flowControlCommand);
if (stat != ASN_OK) return stat;
break;
/* endSessionCommand */
case 6:
stat = asn1PE_H245EndSessionCommand (pctxt, pvalue->u.endSessionCommand);
if (stat != ASN_OK) return stat;
break;
/* miscellaneousCommand */
case 7:
stat = asn1PE_H245MiscellaneousCommand (pctxt, pvalue->u.miscellaneousCommand);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 8);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* communicationModeCommand */
case 8:
stat = asn1PE_H245CommunicationModeCommand (&lctxt, pvalue->u.communicationModeCommand);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* conferenceCommand */
case 9:
stat = asn1PE_H245ConferenceCommand (&lctxt, pvalue->u.conferenceCommand);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* h223MultiplexReconfiguration */
case 10:
stat = asn1PE_H245H223MultiplexReconfiguration (&lctxt, pvalue->u.h223MultiplexReconfiguration);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* newATMVCCommand */
case 11:
stat = asn1PE_H245NewATMVCCommand (&lctxt, pvalue->u.newATMVCCommand);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* mobileMultilinkReconfigurationCommand */
case 12:
stat = asn1PE_H245MobileMultilinkReconfigurationCommand (&lctxt, pvalue->u.mobileMultilinkReconfigurationCommand);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* FunctionNotUnderstood */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FunctionNotUnderstood (OOCTXT* pctxt, H245FunctionNotUnderstood* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* request */
case 1:
stat = asn1PE_H245RequestMessage (pctxt, pvalue->u.request);
if (stat != ASN_OK) return stat;
break;
/* response */
case 2:
stat = asn1PE_H245ResponseMessage (pctxt, pvalue->u.response);
if (stat != ASN_OK) return stat;
break;
/* command */
case 3:
stat = asn1PE_H245CommandMessage (pctxt, pvalue->u.command);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* MasterSlaveDeterminationRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MasterSlaveDeterminationRelease (OOCTXT* pctxt, H245MasterSlaveDeterminationRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* TerminalCapabilitySetRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalCapabilitySetRelease (OOCTXT* pctxt, H245TerminalCapabilitySetRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* OpenLogicalChannelConfirm */
/* */
/**************************************************************/
EXTERN int asn1PE_H245OpenLogicalChannelConfirm (OOCTXT* pctxt, H245OpenLogicalChannelConfirm* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestChannelCloseRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestChannelCloseRelease (OOCTXT* pctxt, H245RequestChannelCloseRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardLogicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->forwardLogicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendRelease_multiplexTableEntryNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendRelease_multiplexTableEntryNumber (OOCTXT* pctxt, H245MultiplexEntrySendRelease_multiplexTableEntryNumber* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultiplexEntrySendRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultiplexEntrySendRelease (OOCTXT* pctxt, H245MultiplexEntrySendRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode multiplexTableEntryNumber */
stat = asn1PE_H245MultiplexEntrySendRelease_multiplexTableEntryNumber (pctxt, &pvalue->multiplexTableEntryNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryRelease_entryNumbers */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryRelease_entryNumbers (OOCTXT* pctxt, H245RequestMultiplexEntryRelease_entryNumbers* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 15, 0 };
int stat = ASN_OK;
ASN1UINT xx1;
/* encode length determinant */
addSizeConstraint (pctxt, &lsize1);
stat = encodeLength (pctxt, pvalue->n);
if (stat < 0) return stat;
/* encode elements */
for (xx1 = 0; xx1 < pvalue->n; xx1++) {
stat = asn1PE_H245MultiplexTableEntryNumber (pctxt, pvalue->elem[xx1]);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* RequestMultiplexEntryRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestMultiplexEntryRelease (OOCTXT* pctxt, H245RequestMultiplexEntryRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode entryNumbers */
stat = asn1PE_H245RequestMultiplexEntryRelease_entryNumbers (pctxt, &pvalue->entryNumbers);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* RequestModeRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245RequestModeRelease (OOCTXT* pctxt, H245RequestModeRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousIndication_type_videoNotDecodedMBs */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousIndication_type_videoNotDecodedMBs (OOCTXT* pctxt, H245MiscellaneousIndication_type_videoNotDecodedMBs* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode firstMB */
stat = encodeConsUnsigned (pctxt, pvalue->firstMB, 1U, 8192U);
if (stat != ASN_OK) return stat;
/* encode numberOfMBs */
stat = encodeConsUnsigned (pctxt, pvalue->numberOfMBs, 1U, 8192U);
if (stat != ASN_OK) return stat;
/* encode temporalReference */
stat = encodeConsUnsigned (pctxt, pvalue->temporalReference, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousIndication_type */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousIndication_type (OOCTXT* pctxt, H245MiscellaneousIndication_type* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 10);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logicalChannelActive */
case 1:
/* NULL */
break;
/* logicalChannelInactive */
case 2:
/* NULL */
break;
/* multipointConference */
case 3:
/* NULL */
break;
/* cancelMultipointConference */
case 4:
/* NULL */
break;
/* multipointZeroComm */
case 5:
/* NULL */
break;
/* cancelMultipointZeroComm */
case 6:
/* NULL */
break;
/* multipointSecondaryStatus */
case 7:
/* NULL */
break;
/* cancelMultipointSecondaryStatus */
case 8:
/* NULL */
break;
/* videoIndicateReadyToActivate */
case 9:
/* NULL */
break;
/* videoTemporalSpatialTradeOff */
case 10:
stat = encodeConsUnsigned (pctxt, pvalue->u.videoTemporalSpatialTradeOff, 0U, 31U);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 11);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* videoNotDecodedMBs */
case 11:
stat = asn1PE_H245MiscellaneousIndication_type_videoNotDecodedMBs (&lctxt, pvalue->u.videoNotDecodedMBs);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* transportCapability */
case 12:
stat = asn1PE_H245TransportCapability (&lctxt, pvalue->u.transportCapability);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MiscellaneousIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MiscellaneousIndication (OOCTXT* pctxt, H245MiscellaneousIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
/* encode type */
stat = asn1PE_H245MiscellaneousIndication_type (pctxt, &pvalue->type);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* JitterIndication_scope */
/* */
/**************************************************************/
EXTERN int asn1PE_H245JitterIndication_scope (OOCTXT* pctxt, H245JitterIndication_scope* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logicalChannelNumber */
case 1:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelNumber);
if (stat != ASN_OK) return stat;
break;
/* resourceID */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* wholeMultiplex */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* JitterIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245JitterIndication (OOCTXT* pctxt, H245JitterIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.skippedFrameCountPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.additionalDecoderBufferPresent);
/* encode scope */
stat = asn1PE_H245JitterIndication_scope (pctxt, &pvalue->scope);
if (stat != ASN_OK) return stat;
/* encode estimatedReceivedJitterMantissa */
stat = encodeConsUnsigned (pctxt, pvalue->estimatedReceivedJitterMantissa, 0U, 3U);
if (stat != ASN_OK) return stat;
/* encode estimatedReceivedJitterExponent */
stat = encodeConsUnsigned (pctxt, pvalue->estimatedReceivedJitterExponent, 0U, 7U);
if (stat != ASN_OK) return stat;
/* encode skippedFrameCount */
if (pvalue->m.skippedFrameCountPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->skippedFrameCount, 0U, 15U);
if (stat != ASN_OK) return stat;
}
/* encode additionalDecoderBuffer */
if (pvalue->m.additionalDecoderBufferPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->additionalDecoderBuffer, 0U, 262143U);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* H223SkewIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H223SkewIndication (OOCTXT* pctxt, H245H223SkewIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber1 */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber1);
if (stat != ASN_OK) return stat;
/* encode logicalChannelNumber2 */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber2);
if (stat != ASN_OK) return stat;
/* encode skew */
stat = encodeConsUnsigned (pctxt, pvalue->skew, 0U, 4095U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_aal_aal1_clockRecovery */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_aal_aal1_clockRecovery (OOCTXT* pctxt, H245NewATMVCIndication_aal_aal1_clockRecovery* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nullClockRecovery */
case 1:
/* NULL */
break;
/* srtsClockRecovery */
case 2:
/* NULL */
break;
/* adaptiveClockRecovery */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_aal_aal1_errorCorrection */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_aal_aal1_errorCorrection (OOCTXT* pctxt, H245NewATMVCIndication_aal_aal1_errorCorrection* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nullErrorCorrection */
case 1:
/* NULL */
break;
/* longInterleaver */
case 2:
/* NULL */
break;
/* shortInterleaver */
case 3:
/* NULL */
break;
/* errorCorrectionOnly */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_aal_aal1 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_aal_aal1 (OOCTXT* pctxt, H245NewATMVCIndication_aal_aal1* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode clockRecovery */
stat = asn1PE_H245NewATMVCIndication_aal_aal1_clockRecovery (pctxt, &pvalue->clockRecovery);
if (stat != ASN_OK) return stat;
/* encode errorCorrection */
stat = asn1PE_H245NewATMVCIndication_aal_aal1_errorCorrection (pctxt, &pvalue->errorCorrection);
if (stat != ASN_OK) return stat;
/* encode structuredDataTransfer */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->structuredDataTransfer);
if (stat != ASN_OK) return stat;
/* encode partiallyFilledCells */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->partiallyFilledCells);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_aal_aal5 */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_aal_aal5 (OOCTXT* pctxt, H245NewATMVCIndication_aal_aal5* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode forwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->forwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode backwardMaximumSDUSize */
stat = encodeConsUnsigned (pctxt, pvalue->backwardMaximumSDUSize, 0U, 65535U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_aal */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_aal (OOCTXT* pctxt, H245NewATMVCIndication_aal* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* aal1 */
case 1:
stat = asn1PE_H245NewATMVCIndication_aal_aal1 (pctxt, pvalue->u.aal1);
if (stat != ASN_OK) return stat;
break;
/* aal5 */
case 2:
stat = asn1PE_H245NewATMVCIndication_aal_aal5 (pctxt, pvalue->u.aal5);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_multiplex */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_multiplex (OOCTXT* pctxt, H245NewATMVCIndication_multiplex* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noMultiplex */
case 1:
/* NULL */
break;
/* transportStream */
case 2:
/* NULL */
break;
/* programStream */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_reverseParameters_multiplex */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_reverseParameters_multiplex (OOCTXT* pctxt, H245NewATMVCIndication_reverseParameters_multiplex* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* noMultiplex */
case 1:
/* NULL */
break;
/* transportStream */
case 2:
/* NULL */
break;
/* programStream */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication_reverseParameters */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication_reverseParameters (OOCTXT* pctxt, H245NewATMVCIndication_reverseParameters* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToPCRClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToPCRClock);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToNetworkClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToNetworkClock);
if (stat != ASN_OK) return stat;
/* encode multiplex */
stat = asn1PE_H245NewATMVCIndication_reverseParameters_multiplex (pctxt, &pvalue->multiplex);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* NewATMVCIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245NewATMVCIndication (OOCTXT* pctxt, H245NewATMVCIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.reverseParametersPresent);
encodeBit (pctxt, extbit);
/* encode resourceID */
stat = encodeConsUnsigned (pctxt, pvalue->resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRate */
stat = encodeConsUnsigned (pctxt, pvalue->bitRate, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToPCRClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToPCRClock);
if (stat != ASN_OK) return stat;
/* encode bitRateLockedToNetworkClock */
stat = encodeBit (pctxt, (ASN1BOOL)pvalue->bitRateLockedToNetworkClock);
if (stat != ASN_OK) return stat;
/* encode aal */
stat = asn1PE_H245NewATMVCIndication_aal (pctxt, &pvalue->aal);
if (stat != ASN_OK) return stat;
/* encode multiplex */
stat = asn1PE_H245NewATMVCIndication_multiplex (pctxt, &pvalue->multiplex);
if (stat != ASN_OK) return stat;
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.reverseParametersPresent);
/* encode extension elements */
if (pvalue->m.reverseParametersPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = asn1PE_H245NewATMVCIndication_reverseParameters (&lctxt, &pvalue->reverseParameters);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_userInputSupportIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication_userInputSupportIndication (OOCTXT* pctxt, H245UserInputIndication_userInputSupportIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* basicString */
case 2:
/* NULL */
break;
/* iA5String */
case 3:
/* NULL */
break;
/* generalString */
case 4:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_signal_rtp */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication_signal_rtp (OOCTXT* pctxt, H245UserInputIndication_signal_rtp* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.timestampPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.expirationTimePresent);
/* encode timestamp */
if (pvalue->m.timestampPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->timestamp, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode expirationTime */
if (pvalue->m.expirationTimePresent) {
stat = encodeConsUnsigned (pctxt, pvalue->expirationTime, 0U, ASN1UINT_MAX);
if (stat != ASN_OK) return stat;
}
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_signal */
/* */
/**************************************************************/
extern EXTERN const char* gs_MULTIMEDIA_SYSTEM_CONTROL_UserInputIndication_signal_signalType_CharSet;
EXTERN int asn1PE_H245UserInputIndication_signal (OOCTXT* pctxt, H245UserInputIndication_signal* pvalue)
{
static Asn1SizeCnst signalType_lsize1 = { 0, 1, 1, 0 };
int stat = ASN_OK;
ASN1BOOL extbit;
ASN1OpenType openType;
OOCTXT lctxt;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->m.rtpPayloadIndicationPresent);
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.durationPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpPresent);
/* encode signalType */
addSizeConstraint (pctxt, &signalType_lsize1);
stat = encodeConstrainedStringEx (pctxt, pvalue->signalType, gs_MULTIMEDIA_SYSTEM_CONTROL_UserInputIndication_signal_signalType_CharSet, 8, 5, 7);
if (stat != ASN_OK) return stat;
/* encode duration */
if (pvalue->m.durationPresent) {
stat = encodeConsUnsigned (pctxt, pvalue->duration, 1U, 65535U);
if (stat != ASN_OK) return stat;
}
/* encode rtp */
if (pvalue->m.rtpPresent) {
stat = asn1PE_H245UserInputIndication_signal_rtp (pctxt, &pvalue->rtp);
if (stat != ASN_OK) return stat;
}
if (extbit) {
/* encode extension optional bits length */
stat = encodeSmallNonNegWholeNumber (pctxt, 0);
if (stat != ASN_OK) return stat;
/* encode optional bits */
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpPayloadIndicationPresent);
/* encode extension elements */
if (pvalue->m.rtpPayloadIndicationPresent) {
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
/* NULL */
stat = encodeByteAlign (&lctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_signalUpdate_rtp */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication_signalUpdate_rtp (OOCTXT* pctxt, H245UserInputIndication_signalUpdate_rtp* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_signalUpdate */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication_signalUpdate (OOCTXT* pctxt, H245UserInputIndication_signalUpdate* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpPresent);
/* encode duration */
stat = encodeConsUnsigned (pctxt, pvalue->duration, 1U, 65535U);
if (stat != ASN_OK) return stat;
/* encode rtp */
if (pvalue->m.rtpPresent) {
stat = asn1PE_H245UserInputIndication_signalUpdate_rtp (pctxt, &pvalue->rtp);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication_extendedAlphanumeric */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication_extendedAlphanumeric (OOCTXT* pctxt, H245UserInputIndication_extendedAlphanumeric* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.rtpPayloadIndicationPresent);
/* encode alphanumeric */
stat = encodeVarWidthCharString (pctxt, pvalue->alphanumeric);
if (stat != ASN_OK) return stat;
/* encode rtpPayloadIndication */
if (pvalue->m.rtpPayloadIndicationPresent) {
/* NULL */
}
return (stat);
}
/**************************************************************/
/* */
/* UserInputIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245UserInputIndication (OOCTXT* pctxt, H245UserInputIndication* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 2);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardParameter (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* alphanumeric */
case 2:
stat = encodeVarWidthCharString (pctxt, pvalue->u.alphanumeric);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 3);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* userInputSupportIndication */
case 3:
stat = asn1PE_H245UserInputIndication_userInputSupportIndication (&lctxt, pvalue->u.userInputSupportIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* signal */
case 4:
stat = asn1PE_H245UserInputIndication_signal (&lctxt, pvalue->u.signal);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* signalUpdate */
case 5:
stat = asn1PE_H245UserInputIndication_signalUpdate (&lctxt, pvalue->u.signalUpdate);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* extendedAlphanumeric */
case 6:
stat = asn1PE_H245UserInputIndication_extendedAlphanumeric (&lctxt, pvalue->u.extendedAlphanumeric);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* H2250MaximumSkewIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245H2250MaximumSkewIndication (OOCTXT* pctxt, H245H2250MaximumSkewIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode logicalChannelNumber1 */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber1);
if (stat != ASN_OK) return stat;
/* encode logicalChannelNumber2 */
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->logicalChannelNumber2);
if (stat != ASN_OK) return stat;
/* encode maximumSkew */
stat = encodeConsUnsigned (pctxt, pvalue->maximumSkew, 0U, 4095U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MCLocationIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MCLocationIndication (OOCTXT* pctxt, H245MCLocationIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode signalAddress */
stat = asn1PE_H245TransportAddress (pctxt, &pvalue->signalAddress);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* TerminalYouAreSeeingInSubPictureNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245TerminalYouAreSeeingInSubPictureNumber (OOCTXT* pctxt, H245TerminalYouAreSeeingInSubPictureNumber* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode terminalNumber */
stat = asn1PE_H245TerminalNumber (pctxt, pvalue->terminalNumber);
if (stat != ASN_OK) return stat;
/* encode subPictureNumber */
stat = encodeConsUnsigned (pctxt, pvalue->subPictureNumber, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VideoIndicateCompose */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VideoIndicateCompose (OOCTXT* pctxt, H245VideoIndicateCompose* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode compositionNumber */
stat = encodeConsUnsigned (pctxt, pvalue->compositionNumber, 0U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* ConferenceIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245ConferenceIndication (OOCTXT* pctxt, H245ConferenceIndication* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 10);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 9);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* sbeNumber */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.sbeNumber, 0U, 9U);
if (stat != ASN_OK) return stat;
break;
/* terminalNumberAssign */
case 2:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.terminalNumberAssign);
if (stat != ASN_OK) return stat;
break;
/* terminalJoinedConference */
case 3:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.terminalJoinedConference);
if (stat != ASN_OK) return stat;
break;
/* terminalLeftConference */
case 4:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.terminalLeftConference);
if (stat != ASN_OK) return stat;
break;
/* seenByAtLeastOneOther */
case 5:
/* NULL */
break;
/* cancelSeenByAtLeastOneOther */
case 6:
/* NULL */
break;
/* seenByAll */
case 7:
/* NULL */
break;
/* cancelSeenByAll */
case 8:
/* NULL */
break;
/* terminalYouAreSeeing */
case 9:
stat = asn1PE_H245TerminalLabel (pctxt, pvalue->u.terminalYouAreSeeing);
if (stat != ASN_OK) return stat;
break;
/* requestForFloor */
case 10:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 11);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* withdrawChairToken */
case 11:
/* NULL */
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* floorRequested */
case 12:
stat = asn1PE_H245TerminalLabel (&lctxt, pvalue->u.floorRequested);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* terminalYouAreSeeingInSubPictureNumber */
case 13:
stat = asn1PE_H245TerminalYouAreSeeingInSubPictureNumber (&lctxt, pvalue->u.terminalYouAreSeeingInSubPictureNumber);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* videoIndicateCompose */
case 14:
stat = asn1PE_H245VideoIndicateCompose (&lctxt, pvalue->u.videoIndicateCompose);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* VendorIdentification_productNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VendorIdentification_productNumber (OOCTXT* pctxt, H245VendorIdentification_productNumber* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VendorIdentification_versionNumber */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VendorIdentification_versionNumber (OOCTXT* pctxt, H245VendorIdentification_versionNumber* pvalue)
{
static Asn1SizeCnst lsize1 = { 0, 1, 256, 0 };
int stat = ASN_OK;
addSizeConstraint (pctxt, &lsize1);
stat = encodeOctetString (pctxt, pvalue->numocts, pvalue->data);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* VendorIdentification */
/* */
/**************************************************************/
EXTERN int asn1PE_H245VendorIdentification (OOCTXT* pctxt, H245VendorIdentification* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.productNumberPresent);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.versionNumberPresent);
/* encode vendor */
stat = asn1PE_H245NonStandardIdentifier (pctxt, &pvalue->vendor);
if (stat != ASN_OK) return stat;
/* encode productNumber */
if (pvalue->m.productNumberPresent) {
stat = asn1PE_H245VendorIdentification_productNumber (pctxt, &pvalue->productNumber);
if (stat != ASN_OK) return stat;
}
/* encode versionNumber */
if (pvalue->m.versionNumberPresent) {
stat = asn1PE_H245VendorIdentification_versionNumber (pctxt, &pvalue->versionNumber);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* FunctionNotSupported_cause */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FunctionNotSupported_cause (OOCTXT* pctxt, H245FunctionNotSupported_cause* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* syntaxError */
case 1:
/* NULL */
break;
/* semanticError */
case 2:
/* NULL */
break;
/* unknownFunction */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* FunctionNotSupported */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FunctionNotSupported (OOCTXT* pctxt, H245FunctionNotSupported* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
encodeBit (pctxt, (ASN1BOOL)pvalue->m.returnedFunctionPresent);
/* encode cause */
stat = asn1PE_H245FunctionNotSupported_cause (pctxt, &pvalue->cause);
if (stat != ASN_OK) return stat;
/* encode returnedFunction */
if (pvalue->m.returnedFunctionPresent) {
stat = encodeOctetString (pctxt, pvalue->returnedFunction.numocts, pvalue->returnedFunction.data);
if (stat != ASN_OK) return stat;
}
return (stat);
}
/**************************************************************/
/* */
/* MultilinkIndication_crcDesired */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkIndication_crcDesired (OOCTXT* pctxt, H245MultilinkIndication_crcDesired* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* MultilinkIndication_excessiveError */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkIndication_excessiveError (OOCTXT* pctxt, H245MultilinkIndication_excessiveError* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode connectionIdentifier */
stat = asn1PE_H245ConnectionIdentifier (pctxt, &pvalue->connectionIdentifier);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MultilinkIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultilinkIndication (OOCTXT* pctxt, H245MultilinkIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 3);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* crcDesired */
case 2:
stat = asn1PE_H245MultilinkIndication_crcDesired (pctxt, pvalue->u.crcDesired);
if (stat != ASN_OK) return stat;
break;
/* excessiveError */
case 3:
stat = asn1PE_H245MultilinkIndication_excessiveError (pctxt, pvalue->u.excessiveError);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 4);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}
/**************************************************************/
/* */
/* LogicalChannelRateRelease */
/* */
/**************************************************************/
EXTERN int asn1PE_H245LogicalChannelRateRelease (OOCTXT* pctxt, H245LogicalChannelRateRelease* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
return (stat);
}
/**************************************************************/
/* */
/* FlowControlIndication_scope */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlIndication_scope (OOCTXT* pctxt, H245FlowControlIndication_scope* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 2);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* logicalChannelNumber */
case 1:
stat = asn1PE_H245LogicalChannelNumber (pctxt, pvalue->u.logicalChannelNumber);
if (stat != ASN_OK) return stat;
break;
/* resourceID */
case 2:
stat = encodeConsUnsigned (pctxt, pvalue->u.resourceID, 0U, 65535U);
if (stat != ASN_OK) return stat;
break;
/* wholeMultiplex */
case 3:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* FlowControlIndication_restriction */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlIndication_restriction (OOCTXT* pctxt, H245FlowControlIndication_restriction* pvalue)
{
int stat = ASN_OK;
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 1);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* maximumBitRate */
case 1:
stat = encodeConsUnsigned (pctxt, pvalue->u.maximumBitRate, 0U, 16777215U);
if (stat != ASN_OK) return stat;
break;
/* noRestriction */
case 2:
/* NULL */
break;
default:
return ASN_E_INVOPT;
}
return (stat);
}
/**************************************************************/
/* */
/* FlowControlIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245FlowControlIndication (OOCTXT* pctxt, H245FlowControlIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode scope */
stat = asn1PE_H245FlowControlIndication_scope (pctxt, &pvalue->scope);
if (stat != ASN_OK) return stat;
/* encode restriction */
stat = asn1PE_H245FlowControlIndication_restriction (pctxt, &pvalue->restriction);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* MobileMultilinkReconfigurationIndication */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MobileMultilinkReconfigurationIndication (OOCTXT* pctxt, H245MobileMultilinkReconfigurationIndication* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = 0;
encodeBit (pctxt, extbit);
/* encode sampleSize */
stat = encodeConsUnsigned (pctxt, pvalue->sampleSize, 1U, 255U);
if (stat != ASN_OK) return stat;
/* encode samplesPerFrame */
stat = encodeConsUnsigned (pctxt, pvalue->samplesPerFrame, 1U, 255U);
if (stat != ASN_OK) return stat;
return (stat);
}
/**************************************************************/
/* */
/* IndicationMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245IndicationMessage (OOCTXT* pctxt, H245IndicationMessage* pvalue)
{
int stat = ASN_OK;
OOCTXT lctxt;
ASN1OpenType openType;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 14);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 13);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* nonStandard */
case 1:
stat = asn1PE_H245NonStandardMessage (pctxt, pvalue->u.nonStandard);
if (stat != ASN_OK) return stat;
break;
/* functionNotUnderstood */
case 2:
stat = asn1PE_H245FunctionNotUnderstood (pctxt, pvalue->u.functionNotUnderstood);
if (stat != ASN_OK) return stat;
break;
/* masterSlaveDeterminationRelease */
case 3:
stat = asn1PE_H245MasterSlaveDeterminationRelease (pctxt, pvalue->u.masterSlaveDeterminationRelease);
if (stat != ASN_OK) return stat;
break;
/* terminalCapabilitySetRelease */
case 4:
stat = asn1PE_H245TerminalCapabilitySetRelease (pctxt, pvalue->u.terminalCapabilitySetRelease);
if (stat != ASN_OK) return stat;
break;
/* openLogicalChannelConfirm */
case 5:
stat = asn1PE_H245OpenLogicalChannelConfirm (pctxt, pvalue->u.openLogicalChannelConfirm);
if (stat != ASN_OK) return stat;
break;
/* requestChannelCloseRelease */
case 6:
stat = asn1PE_H245RequestChannelCloseRelease (pctxt, pvalue->u.requestChannelCloseRelease);
if (stat != ASN_OK) return stat;
break;
/* multiplexEntrySendRelease */
case 7:
stat = asn1PE_H245MultiplexEntrySendRelease (pctxt, pvalue->u.multiplexEntrySendRelease);
if (stat != ASN_OK) return stat;
break;
/* requestMultiplexEntryRelease */
case 8:
stat = asn1PE_H245RequestMultiplexEntryRelease (pctxt, pvalue->u.requestMultiplexEntryRelease);
if (stat != ASN_OK) return stat;
break;
/* requestModeRelease */
case 9:
stat = asn1PE_H245RequestModeRelease (pctxt, pvalue->u.requestModeRelease);
if (stat != ASN_OK) return stat;
break;
/* miscellaneousIndication */
case 10:
stat = asn1PE_H245MiscellaneousIndication (pctxt, pvalue->u.miscellaneousIndication);
if (stat != ASN_OK) return stat;
break;
/* jitterIndication */
case 11:
stat = asn1PE_H245JitterIndication (pctxt, pvalue->u.jitterIndication);
if (stat != ASN_OK) return stat;
break;
/* h223SkewIndication */
case 12:
stat = asn1PE_H245H223SkewIndication (pctxt, pvalue->u.h223SkewIndication);
if (stat != ASN_OK) return stat;
break;
/* newATMVCIndication */
case 13:
stat = asn1PE_H245NewATMVCIndication (pctxt, pvalue->u.newATMVCIndication);
if (stat != ASN_OK) return stat;
break;
/* userInput */
case 14:
stat = asn1PE_H245UserInputIndication (pctxt, pvalue->u.userInput);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 15);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
initContext (&lctxt);
stat = setPERBuffer (&lctxt, 0, 0, TRUE);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
switch (pvalue->t)
{
/* h2250MaximumSkewIndication */
case 15:
stat = asn1PE_H245H2250MaximumSkewIndication (&lctxt, pvalue->u.h2250MaximumSkewIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* mcLocationIndication */
case 16:
stat = asn1PE_H245MCLocationIndication (&lctxt, pvalue->u.mcLocationIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* conferenceIndication */
case 17:
stat = asn1PE_H245ConferenceIndication (&lctxt, pvalue->u.conferenceIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* vendorIdentification */
case 18:
stat = asn1PE_H245VendorIdentification (&lctxt, pvalue->u.vendorIdentification);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* functionNotSupported */
case 19:
stat = asn1PE_H245FunctionNotSupported (&lctxt, pvalue->u.functionNotSupported);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* multilinkIndication */
case 20:
stat = asn1PE_H245MultilinkIndication (&lctxt, pvalue->u.multilinkIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* logicalChannelRateRelease */
case 21:
stat = asn1PE_H245LogicalChannelRateRelease (&lctxt, pvalue->u.logicalChannelRateRelease);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* flowControlIndication */
case 22:
stat = asn1PE_H245FlowControlIndication (&lctxt, pvalue->u.flowControlIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
/* mobileMultilinkReconfigurationIndication */
case 23:
stat = asn1PE_H245MobileMultilinkReconfigurationIndication (&lctxt, pvalue->u.mobileMultilinkReconfigurationIndication);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
openType.data = encodeGetMsgPtr (&lctxt, (int*)&openType.numocts);
break;
default:
;
}
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
stat = encodeOpenType (pctxt, openType.numocts, openType.data);
if (stat != ASN_OK) return freeContext (&lctxt), stat;
freeContext (&lctxt);
}
return (stat);
}
/**************************************************************/
/* */
/* MultimediaSystemControlMessage */
/* */
/**************************************************************/
EXTERN int asn1PE_H245MultimediaSystemControlMessage (OOCTXT* pctxt, H245MultimediaSystemControlMessage* pvalue)
{
int stat = ASN_OK;
ASN1BOOL extbit;
/* extension bit */
extbit = (ASN1BOOL)(pvalue->t > 4);
encodeBit (pctxt, extbit);
if (!extbit) {
/* Encode choice index value */
stat = encodeConsUnsigned (pctxt, pvalue->t - 1, 0, 3);
if (stat != ASN_OK) return stat;
/* Encode root element data value */
switch (pvalue->t)
{
/* request */
case 1:
stat = asn1PE_H245RequestMessage (pctxt, pvalue->u.request);
if (stat != ASN_OK) return stat;
break;
/* response */
case 2:
stat = asn1PE_H245ResponseMessage (pctxt, pvalue->u.response);
if (stat != ASN_OK) return stat;
break;
/* command */
case 3:
stat = asn1PE_H245CommandMessage (pctxt, pvalue->u.command);
if (stat != ASN_OK) return stat;
break;
/* indication */
case 4:
stat = asn1PE_H245IndicationMessage (pctxt, pvalue->u.indication);
if (stat != ASN_OK) return stat;
break;
default:
return ASN_E_INVOPT;
}
}
else {
/* Encode extension choice index value */
stat = encodeSmallNonNegWholeNumber (pctxt, pvalue->t - 5);
if (stat != ASN_OK) return stat;
/* Encode extension element data value */
}
return (stat);
}