20794 lines
656 KiB
C
20794 lines
656 KiB
C
/* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
|
|
/* ASN.1 definitions for Multimedia System Control (H.245) */
|
|
|
|
#include <windows.h>
|
|
#include "h245asn.h"
|
|
|
|
ASN1module_t H245ASN_Module = NULL;
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1_errorCorrection(ASN1encoding_t enc, NewATMVCIndication_aal_aal1_errorCorrection *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1_clockRecovery(ASN1encoding_t enc, NewATMVCIndication_aal_aal1_clockRecovery *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(ASN1encoding_t enc, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount *val);
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode_eRM_recovery(ASN1encoding_t enc, V76LogicalChannelParameters_mode_eRM_recovery *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_extendedPAR_Set *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI_customPCF_Set(ASN1encoding_t enc, CustomPictureFormat_mPI_customPCF_Set *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates_type_rangeOfBitRates(ASN1encoding_t enc, VCCapability_availableBitRates_type_rangeOfBitRates *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(ASN1encoding_t enc, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates_type(ASN1encoding_t enc, VCCapability_availableBitRates_type *val);
|
|
static int ASN1CALL ASN1Enc_H223Capability_h223MultiplexTableCapability_enhanced(ASN1encoding_t enc, H223Capability_h223MultiplexTableCapability_enhanced *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI_customPCF(ASN1encoding_t enc, CustomPictureFormat_mPI_customPCF *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_extendedPAR *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val);
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters_adaptationLayerType_al3(ASN1encoding_t enc, H223LogicalChannelParameters_adaptationLayerType_al3 *val);
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode_eRM(ASN1encoding_t enc, V76LogicalChannelParameters_mode_eRM *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress_route(ASN1encoding_t enc, PUnicastAddress_iPSourceRouteAddress_route *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress_routing(ASN1encoding_t enc, UnicastAddress_iPSourceRouteAddress_routing *val);
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters_adaptationLayerType_al3(ASN1encoding_t enc, H223ModeParameters_adaptationLayerType_al3 *val);
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(ASN1encoding_t enc, SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val);
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(ASN1encoding_t enc, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart(ASN1encoding_t enc, MiscellaneousCommand_type_progressiveRefinementStart *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_videoFastUpdateMB(ASN1encoding_t enc, MiscellaneousCommand_type_videoFastUpdateMB *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_videoFastUpdateGOB(ASN1encoding_t enc, MiscellaneousCommand_type_videoFastUpdateGOB *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication_type_videoNotDecodedMBs(ASN1encoding_t enc, MiscellaneousIndication_type_videoNotDecodedMBs *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal5(ASN1encoding_t enc, NewATMVCIndication_aal_aal5 *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1(ASN1encoding_t enc, NewATMVCIndication_aal_aal1 *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_reverseParameters_multiplex(ASN1encoding_t enc, NewATMVCIndication_reverseParameters_multiplex *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signal_rtp(ASN1encoding_t enc, UserInputIndication_signal_rtp *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signalUpdate_rtp(ASN1encoding_t enc, UserInputIndication_signalUpdate_rtp *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signalUpdate(ASN1encoding_t enc, UserInputIndication_signalUpdate *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signal(ASN1encoding_t enc, UserInputIndication_signal *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_reverseParameters(ASN1encoding_t enc, NewATMVCIndication_reverseParameters *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_multiplex(ASN1encoding_t enc, NewATMVCIndication_multiplex *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal(ASN1encoding_t enc, NewATMVCIndication_aal *val);
|
|
static int ASN1CALL ASN1Enc_JitterIndication_scope(ASN1encoding_t enc, JitterIndication_scope *val);
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupported_cause(ASN1encoding_t enc, FunctionNotSupported_cause *val);
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration_h223AnnexADoubleFlag(ASN1encoding_t enc, H223MultiplexReconfiguration_h223AnnexADoubleFlag *val);
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration_h223ModeChange(ASN1encoding_t enc, H223MultiplexReconfiguration_h223ModeChange *val);
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand_isdnOptions(ASN1encoding_t enc, EndSessionCommand_isdnOptions *val);
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand_gstnOptions(ASN1encoding_t enc, EndSessionCommand_gstnOptions *val);
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand_restriction(ASN1encoding_t enc, FlowControlCommand_restriction *val);
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand_scope(ASN1encoding_t enc, FlowControlCommand_scope *val);
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest(ASN1encoding_t enc, SendTerminalCapabilitySet_specificRequest *val);
|
|
static int ASN1CALL ASN1Enc_RemoteMCResponse_reject(ASN1encoding_t enc, RemoteMCResponse_reject *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_sendThisSourceResponse(ASN1encoding_t enc, ConferenceResponse_sendThisSourceResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_makeTerminalBroadcasterResponse(ASN1encoding_t enc, ConferenceResponse_makeTerminalBroadcasterResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_broadcastMyLogicalChannelResponse(ASN1encoding_t enc, ConferenceResponse_broadcastMyLogicalChannelResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_extensionAddressResponse(ASN1encoding_t enc, ConferenceResponse_extensionAddressResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_makeMeChairResponse(ASN1encoding_t enc, ConferenceResponse_makeMeChairResponse *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject_cause(ASN1encoding_t enc, MaintenanceLoopReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject_type(ASN1encoding_t enc, MaintenanceLoopReject_type *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopAck_type(ASN1encoding_t enc, MaintenanceLoopAck_type *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopRequest_type(ASN1encoding_t enc, MaintenanceLoopRequest_type *val);
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCMode_g723AnnexCAudioMode(ASN1encoding_t enc, G7231AnnexCMode_g723AnnexCAudioMode *val);
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_multichannelType(ASN1encoding_t enc, IS13818AudioMode_multichannelType *val);
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_audioSampling(ASN1encoding_t enc, IS13818AudioMode_audioSampling *val);
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_audioLayer(ASN1encoding_t enc, IS13818AudioMode_audioLayer *val);
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_multichannelType(ASN1encoding_t enc, IS11172AudioMode_multichannelType *val);
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_audioSampling(ASN1encoding_t enc, IS11172AudioMode_audioSampling *val);
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_audioLayer(ASN1encoding_t enc, IS11172AudioMode_audioLayer *val);
|
|
static int ASN1CALL ASN1Enc_AudioMode_g7231(ASN1encoding_t enc, AudioMode_g7231 *val);
|
|
static int ASN1CALL ASN1Enc_H263VideoMode_resolution(ASN1encoding_t enc, H263VideoMode_resolution *val);
|
|
static int ASN1CALL ASN1Enc_H262VideoMode_profileAndLevel(ASN1encoding_t enc, H262VideoMode_profileAndLevel *val);
|
|
static int ASN1CALL ASN1Enc_H261VideoMode_resolution(ASN1encoding_t enc, H261VideoMode_resolution *val);
|
|
static int ASN1CALL ASN1Enc_RequestModeReject_cause(ASN1encoding_t enc, RequestModeReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_RequestModeAck_response(ASN1encoding_t enc, RequestModeAck_response *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRelease_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryRelease_entryNumbers *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRejectionDescriptions_cause(ASN1encoding_t enc, RequestMultiplexEntryRejectionDescriptions_cause *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryReject_entryNumbers *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryAck_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryAck_entryNumbers *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntry_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntry_entryNumbers *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendRelease_multiplexTableEntryNumber(ASN1encoding_t enc, MultiplexEntrySendRelease_multiplexTableEntryNumber *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryRejectionDescriptions_cause(ASN1encoding_t enc, MultiplexEntryRejectionDescriptions_cause *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendAck_multiplexTableEntryNumber(ASN1encoding_t enc, MultiplexEntrySendAck_multiplexTableEntryNumber *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_repeatCount(ASN1encoding_t enc, MultiplexElement_repeatCount *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_type(ASN1encoding_t enc, MultiplexElement_type *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseReject_cause(ASN1encoding_t enc, RequestChannelCloseReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelClose_reason(ASN1encoding_t enc, RequestChannelClose_reason *val);
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel_reason(ASN1encoding_t enc, CloseLogicalChannel_reason *val);
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel_source(ASN1encoding_t enc, CloseLogicalChannel_source *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelReject_cause(ASN1encoding_t enc, OpenLogicalChannelReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_MulticastAddress_iP6Address(ASN1encoding_t enc, MulticastAddress_iP6Address *val);
|
|
static int ASN1CALL ASN1Enc_MulticastAddress_iPAddress(ASN1encoding_t enc, MulticastAddress_iPAddress *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress(ASN1encoding_t enc, UnicastAddress_iPSourceRouteAddress *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iP6Address(ASN1encoding_t enc, UnicastAddress_iP6Address *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPXAddress(ASN1encoding_t enc, UnicastAddress_iPXAddress *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPAddress(ASN1encoding_t enc, UnicastAddress_iPAddress *val);
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode(ASN1encoding_t enc, V76LogicalChannelParameters_mode *val);
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_suspendResume(ASN1encoding_t enc, V76LogicalChannelParameters_suspendResume *val);
|
|
static int ASN1CALL ASN1Enc_H223AnnexCArqParameters_numberOfRetransmissions(ASN1encoding_t enc, H223AnnexCArqParameters_numberOfRetransmissions *val);
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_crcLength(ASN1encoding_t enc, H223AL3MParameters_crcLength *val);
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_headerFormat(ASN1encoding_t enc, H223AL3MParameters_headerFormat *val);
|
|
static int ASN1CALL ASN1Enc_H223AL2MParameters_headerFEC(ASN1encoding_t enc, H223AL2MParameters_headerFEC *val);
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_crcLength(ASN1encoding_t enc, H223AL1MParameters_crcLength *val);
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_headerFEC(ASN1encoding_t enc, H223AL1MParameters_headerFEC *val);
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_transferMode(ASN1encoding_t enc, H223AL1MParameters_transferMode *val);
|
|
static int ASN1CALL ASN1Enc_Q2931Address_address(ASN1encoding_t enc, Q2931Address_address *val);
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_t120SetupProcedure(ASN1encoding_t enc, NetworkAccessParameters_t120SetupProcedure *val);
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_distribution(ASN1encoding_t enc, NetworkAccessParameters_distribution *val);
|
|
static int ASN1CALL ASN1Enc_T84Profile_t84Restricted(ASN1encoding_t enc, T84Profile_t84Restricted *val);
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCCapability_g723AnnexCAudioMode(ASN1encoding_t enc, G7231AnnexCCapability_g723AnnexCAudioMode *val);
|
|
static int ASN1CALL ASN1Enc_AudioCapability_g7231(ASN1encoding_t enc, AudioCapability_g7231 *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI(ASN1encoding_t enc, CustomPictureFormat_mPI *val);
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection_videoBackChannelSend(ASN1encoding_t enc, RefPictureSelection_videoBackChannelSend *val);
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection_additionalPictureMemory(ASN1encoding_t enc, RefPictureSelection_additionalPictureMemory *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyFrameMapping_frameSequence(ASN1encoding_t enc, RTPH263VideoRedundancyFrameMapping_frameSequence *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_containedThreads(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding_containedThreads *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding_frameToThreadMapping *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingCapability_secondaryEncoding(ASN1encoding_t enc, PRedundancyEncodingCapability_secondaryEncoding *val);
|
|
static int ASN1CALL ASN1Enc_H2250Capability_mcCapability(ASN1encoding_t enc, H2250Capability_mcCapability *val);
|
|
static int ASN1CALL ASN1Enc_H223Capability_mobileOperationTransmitCapability(ASN1encoding_t enc, H223Capability_mobileOperationTransmitCapability *val);
|
|
static int ASN1CALL ASN1Enc_H223Capability_h223MultiplexTableCapability(ASN1encoding_t enc, H223Capability_h223MultiplexTableCapability *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates(ASN1encoding_t enc, VCCapability_availableBitRates *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability_aal5(ASN1encoding_t enc, VCCapability_aal5 *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability_aal1(ASN1encoding_t enc, VCCapability_aal1 *val);
|
|
static int ASN1CALL ASN1Enc_Capability_h233EncryptionReceiveCapability(ASN1encoding_t enc, Capability_h233EncryptionReceiveCapability *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject_cause(ASN1encoding_t enc, TerminalCapabilitySetReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationReject_cause(ASN1encoding_t enc, MasterSlaveDeterminationReject_cause *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationAck_decision(ASN1encoding_t enc, MasterSlaveDeterminationAck_decision *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardIdentifier_h221NonStandard(ASN1encoding_t enc, NonStandardIdentifier_h221NonStandard *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardIdentifier(ASN1encoding_t enc, NonStandardIdentifier *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDetermination(ASN1encoding_t enc, MasterSlaveDetermination *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationAck(ASN1encoding_t enc, MasterSlaveDeterminationAck *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationReject(ASN1encoding_t enc, MasterSlaveDeterminationReject *val);
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationRelease(ASN1encoding_t enc, MasterSlaveDeterminationRelease *val);
|
|
static int ASN1CALL ASN1Enc_CapabilityDescriptor(ASN1encoding_t enc, CapabilityDescriptor *val);
|
|
static int ASN1CALL ASN1Enc_AlternativeCapabilitySet(ASN1encoding_t enc, AlternativeCapabilitySet *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetAck(ASN1encoding_t enc, TerminalCapabilitySetAck *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject(ASN1encoding_t enc, TerminalCapabilitySetReject *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetRelease(ASN1encoding_t enc, TerminalCapabilitySetRelease *val);
|
|
static int ASN1CALL ASN1Enc_H222Capability(ASN1encoding_t enc, H222Capability *val);
|
|
static int ASN1CALL ASN1Enc_VCCapability(ASN1encoding_t enc, VCCapability *val);
|
|
static int ASN1CALL ASN1Enc_H223AnnexCCapability(ASN1encoding_t enc, H223AnnexCCapability *val);
|
|
static int ASN1CALL ASN1Enc_V75Capability(ASN1encoding_t enc, V75Capability *val);
|
|
static int ASN1CALL ASN1Enc_QOSMode(ASN1encoding_t enc, QOSMode *val);
|
|
static int ASN1CALL ASN1Enc_ATMParameters(ASN1encoding_t enc, ATMParameters *val);
|
|
static int ASN1CALL ASN1Enc_MediaTransportType(ASN1encoding_t enc, MediaTransportType *val);
|
|
static int ASN1CALL ASN1Enc_MediaChannelCapability(ASN1encoding_t enc, MediaChannelCapability *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyFrameMapping(ASN1encoding_t enc, RTPH263VideoRedundancyFrameMapping *val);
|
|
static int ASN1CALL ASN1Enc_MultipointCapability(ASN1encoding_t enc, MultipointCapability *val);
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability(ASN1encoding_t enc, MediaDistributionCapability *val);
|
|
static int ASN1CALL ASN1Enc_H261VideoCapability(ASN1encoding_t enc, H261VideoCapability *val);
|
|
static int ASN1CALL ASN1Enc_H262VideoCapability(ASN1encoding_t enc, H262VideoCapability *val);
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo(ASN1encoding_t enc, EnhancementLayerInfo *val);
|
|
static int ASN1CALL ASN1Enc_TransparencyParameters(ASN1encoding_t enc, TransparencyParameters *val);
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection(ASN1encoding_t enc, RefPictureSelection *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureClockFrequency(ASN1encoding_t enc, CustomPictureClockFrequency *val);
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat(ASN1encoding_t enc, CustomPictureFormat *val);
|
|
static int ASN1CALL ASN1Enc_H263ModeComboFlags(ASN1encoding_t enc, H263ModeComboFlags *val);
|
|
static int ASN1CALL ASN1Enc_IS11172VideoCapability(ASN1encoding_t enc, IS11172VideoCapability *val);
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCCapability(ASN1encoding_t enc, G7231AnnexCCapability *val);
|
|
static int ASN1CALL ASN1Enc_IS11172AudioCapability(ASN1encoding_t enc, IS11172AudioCapability *val);
|
|
static int ASN1CALL ASN1Enc_IS13818AudioCapability(ASN1encoding_t enc, IS13818AudioCapability *val);
|
|
static int ASN1CALL ASN1Enc_GSMAudioCapability(ASN1encoding_t enc, GSMAudioCapability *val);
|
|
static int ASN1CALL ASN1Enc_V42bis(ASN1encoding_t enc, V42bis *val);
|
|
static int ASN1CALL ASN1Enc_T84Profile(ASN1encoding_t enc, T84Profile *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceCapability(ASN1encoding_t enc, ConferenceCapability *val);
|
|
static int ASN1CALL ASN1Enc_Q2931Address(ASN1encoding_t enc, Q2931Address *val);
|
|
static int ASN1CALL ASN1Enc_V75Parameters(ASN1encoding_t enc, V75Parameters *val);
|
|
static int ASN1CALL ASN1Enc_H222LogicalChannelParameters(ASN1encoding_t enc, H222LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_H223AL2MParameters(ASN1encoding_t enc, H223AL2MParameters *val);
|
|
static int ASN1CALL ASN1Enc_H223AnnexCArqParameters(ASN1encoding_t enc, H223AnnexCArqParameters *val);
|
|
static int ASN1CALL ASN1Enc_CRCLength(ASN1encoding_t enc, CRCLength *val);
|
|
static int ASN1CALL ASN1Enc_EscrowData(ASN1encoding_t enc, EscrowData *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelReject(ASN1encoding_t enc, OpenLogicalChannelReject *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelConfirm(ASN1encoding_t enc, OpenLogicalChannelConfirm *val);
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel(ASN1encoding_t enc, CloseLogicalChannel *val);
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannelAck(ASN1encoding_t enc, CloseLogicalChannelAck *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseAck(ASN1encoding_t enc, RequestChannelCloseAck *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseReject(ASN1encoding_t enc, RequestChannelCloseReject *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseRelease(ASN1encoding_t enc, RequestChannelCloseRelease *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySend(ASN1encoding_t enc, MultiplexEntrySend *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexElement(ASN1encoding_t enc, MultiplexElement *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendAck(ASN1encoding_t enc, MultiplexEntrySendAck *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryRejectionDescriptions(ASN1encoding_t enc, MultiplexEntryRejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendRelease(ASN1encoding_t enc, MultiplexEntrySendRelease *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntry(ASN1encoding_t enc, RequestMultiplexEntry *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryAck(ASN1encoding_t enc, RequestMultiplexEntryAck *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRejectionDescriptions(ASN1encoding_t enc, RequestMultiplexEntryRejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRelease(ASN1encoding_t enc, RequestMultiplexEntryRelease *val);
|
|
static int ASN1CALL ASN1Enc_RequestMode(ASN1encoding_t enc, RequestMode *val);
|
|
static int ASN1CALL ASN1Enc_RequestModeAck(ASN1encoding_t enc, RequestModeAck *val);
|
|
static int ASN1CALL ASN1Enc_RequestModeReject(ASN1encoding_t enc, RequestModeReject *val);
|
|
static int ASN1CALL ASN1Enc_RequestModeRelease(ASN1encoding_t enc, RequestModeRelease *val);
|
|
static int ASN1CALL ASN1Enc_V76ModeParameters(ASN1encoding_t enc, V76ModeParameters *val);
|
|
static int ASN1CALL ASN1Enc_H261VideoMode(ASN1encoding_t enc, H261VideoMode *val);
|
|
static int ASN1CALL ASN1Enc_H262VideoMode(ASN1encoding_t enc, H262VideoMode *val);
|
|
static int ASN1CALL ASN1Enc_IS11172VideoMode(ASN1encoding_t enc, IS11172VideoMode *val);
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode(ASN1encoding_t enc, IS11172AudioMode *val);
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode(ASN1encoding_t enc, IS13818AudioMode *val);
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCMode(ASN1encoding_t enc, G7231AnnexCMode *val);
|
|
static int ASN1CALL ASN1Enc_RoundTripDelayRequest(ASN1encoding_t enc, RoundTripDelayRequest *val);
|
|
static int ASN1CALL ASN1Enc_RoundTripDelayResponse(ASN1encoding_t enc, RoundTripDelayResponse *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopRequest(ASN1encoding_t enc, MaintenanceLoopRequest *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopAck(ASN1encoding_t enc, MaintenanceLoopAck *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject(ASN1encoding_t enc, MaintenanceLoopReject *val);
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopOffCommand(ASN1encoding_t enc, MaintenanceLoopOffCommand *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeCommand(ASN1encoding_t enc, CommunicationModeCommand *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeRequest(ASN1encoding_t enc, CommunicationModeRequest *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeResponse(ASN1encoding_t enc, CommunicationModeResponse *val);
|
|
static int ASN1CALL ASN1Enc_Criteria(ASN1encoding_t enc, Criteria *val);
|
|
static int ASN1CALL ASN1Enc_TerminalLabel(ASN1encoding_t enc, TerminalLabel *val);
|
|
static int ASN1CALL ASN1Enc_RequestAllTerminalIDsResponse(ASN1encoding_t enc, RequestAllTerminalIDsResponse *val);
|
|
static int ASN1CALL ASN1Enc_TerminalInformation(ASN1encoding_t enc, TerminalInformation *val);
|
|
static int ASN1CALL ASN1Enc_RemoteMCRequest(ASN1encoding_t enc, RemoteMCRequest *val);
|
|
static int ASN1CALL ASN1Enc_RemoteMCResponse(ASN1encoding_t enc, RemoteMCResponse *val);
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet(ASN1encoding_t enc, SendTerminalCapabilitySet *val);
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand(ASN1encoding_t enc, FlowControlCommand *val);
|
|
static int ASN1CALL ASN1Enc_SubstituteConferenceIDCommand(ASN1encoding_t enc, SubstituteConferenceIDCommand *val);
|
|
static int ASN1CALL ASN1Enc_KeyProtectionMethod(ASN1encoding_t enc, KeyProtectionMethod *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionUpdateRequest(ASN1encoding_t enc, EncryptionUpdateRequest *val);
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration(ASN1encoding_t enc, H223MultiplexReconfiguration *val);
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupported(ASN1encoding_t enc, FunctionNotSupported *val);
|
|
static int ASN1CALL ASN1Enc_TerminalYouAreSeeingInSubPictureNumber(ASN1encoding_t enc, TerminalYouAreSeeingInSubPictureNumber *val);
|
|
static int ASN1CALL ASN1Enc_VideoIndicateCompose(ASN1encoding_t enc, VideoIndicateCompose *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceIndication(ASN1encoding_t enc, ConferenceIndication *val);
|
|
static int ASN1CALL ASN1Enc_JitterIndication(ASN1encoding_t enc, JitterIndication *val);
|
|
static int ASN1CALL ASN1Enc_H223SkewIndication(ASN1encoding_t enc, H223SkewIndication *val);
|
|
static int ASN1CALL ASN1Enc_H2250MaximumSkewIndication(ASN1encoding_t enc, H2250MaximumSkewIndication *val);
|
|
static int ASN1CALL ASN1Enc_VendorIdentification(ASN1encoding_t enc, VendorIdentification *val);
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication(ASN1encoding_t enc, NewATMVCIndication *val);
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(ASN1encoding_t enc, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_type_subElementList(ASN1encoding_t enc, PMultiplexElement_type_subElementList *val);
|
|
static int ASN1CALL ASN1Enc_RequestAllTerminalIDsResponse_terminalInformation(ASN1encoding_t enc, PRequestAllTerminalIDsResponse_terminalInformation *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalCertificateResponse(ASN1encoding_t enc, ConferenceResponse_terminalCertificateResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_chairTokenOwnerResponse(ASN1encoding_t enc, ConferenceResponse_chairTokenOwnerResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalListResponse(ASN1encoding_t enc, ConferenceResponse_terminalListResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_passwordResponse(ASN1encoding_t enc, ConferenceResponse_passwordResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_conferenceIDResponse(ASN1encoding_t enc, ConferenceResponse_conferenceIDResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalIDResponse(ASN1encoding_t enc, ConferenceResponse_terminalIDResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_mCTerminalIDResponse(ASN1encoding_t enc, ConferenceResponse_mCTerminalIDResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceRequest_requestTerminalCertificate(ASN1encoding_t enc, ConferenceRequest_requestTerminalCertificate *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject_rejectionDescriptions(ASN1encoding_t enc, RequestMultiplexEntryReject_rejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendReject_rejectionDescriptions(ASN1encoding_t enc, MultiplexEntrySendReject_rejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryDescriptor_elementList(ASN1encoding_t enc, MultiplexEntryDescriptor_elementList *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionSync_escrowentry(ASN1encoding_t enc, PEncryptionSync_escrowentry *val);
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_arqType(ASN1encoding_t enc, H223AL3MParameters_arqType *val);
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_arqType(ASN1encoding_t enc, H223AL1MParameters_arqType *val);
|
|
static int ASN1CALL ASN1Enc_H263VideoModeCombos_h263VideoCoupledModes(ASN1encoding_t enc, H263VideoModeCombos_h263VideoCoupledModes *val);
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureFormat(ASN1encoding_t enc, PH263Options_customPictureFormat *val);
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureClockFrequency(ASN1encoding_t enc, PH263Options_customPictureClockFrequency *val);
|
|
static int ASN1CALL ASN1Enc_MultipointCapability_mediaDistributionCapability(ASN1encoding_t enc, PMultipointCapability_mediaDistributionCapability *val);
|
|
static int ASN1CALL ASN1Enc_TransportCapability_mediaChannelCapabilities(ASN1encoding_t enc, TransportCapability_mediaChannelCapabilities *val);
|
|
static int ASN1CALL ASN1Enc_H222Capability_vcCapability(ASN1encoding_t enc, PH222Capability_vcCapability *val);
|
|
static int ASN1CALL ASN1Enc_CapabilityDescriptor_simultaneousCapabilities(ASN1encoding_t enc, PCapabilityDescriptor_simultaneousCapabilities *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet_capabilityDescriptors(ASN1encoding_t enc, TerminalCapabilitySet_capabilityDescriptors *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardParameter(ASN1encoding_t enc, NonStandardParameter *val);
|
|
static int ASN1CALL ASN1Enc_H223Capability(ASN1encoding_t enc, H223Capability *val);
|
|
static int ASN1CALL ASN1Enc_V76Capability(ASN1encoding_t enc, V76Capability *val);
|
|
static int ASN1CALL ASN1Enc_RSVPParameters(ASN1encoding_t enc, RSVPParameters *val);
|
|
static int ASN1CALL ASN1Enc_QOSCapability(ASN1encoding_t enc, QOSCapability *val);
|
|
static int ASN1CALL ASN1Enc_TransportCapability(ASN1encoding_t enc, TransportCapability *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMethod(ASN1encoding_t enc, RedundancyEncodingMethod *val);
|
|
static int ASN1CALL ASN1Enc_H263Options(ASN1encoding_t enc, H263Options *val);
|
|
static int ASN1CALL ASN1Enc_H263VideoModeCombos(ASN1encoding_t enc, H263VideoModeCombos *val);
|
|
static int ASN1CALL ASN1Enc_AudioCapability(ASN1encoding_t enc, AudioCapability *val);
|
|
static int ASN1CALL ASN1Enc_CompressionType(ASN1encoding_t enc, CompressionType *val);
|
|
static int ASN1CALL ASN1Enc_MediaEncryptionAlgorithm(ASN1encoding_t enc, MediaEncryptionAlgorithm *val);
|
|
static int ASN1CALL ASN1Enc_AuthenticationCapability(ASN1encoding_t enc, AuthenticationCapability *val);
|
|
static int ASN1CALL ASN1Enc_IntegrityCapability(ASN1encoding_t enc, IntegrityCapability *val);
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters(ASN1encoding_t enc, H223AL1MParameters *val);
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters(ASN1encoding_t enc, H223AL3MParameters *val);
|
|
static int ASN1CALL ASN1Enc_V76HDLCParameters(ASN1encoding_t enc, V76HDLCParameters *val);
|
|
static int ASN1CALL ASN1Enc_UnicastAddress(ASN1encoding_t enc, UnicastAddress *val);
|
|
static int ASN1CALL ASN1Enc_MulticastAddress(ASN1encoding_t enc, MulticastAddress *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionSync(ASN1encoding_t enc, EncryptionSync *val);
|
|
static int ASN1CALL ASN1Enc_RequestChannelClose(ASN1encoding_t enc, RequestChannelClose *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryDescriptor(ASN1encoding_t enc, MultiplexEntryDescriptor *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendReject(ASN1encoding_t enc, MultiplexEntrySendReject *val);
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject(ASN1encoding_t enc, RequestMultiplexEntryReject *val);
|
|
static int ASN1CALL ASN1Enc_H263VideoMode(ASN1encoding_t enc, H263VideoMode *val);
|
|
static int ASN1CALL ASN1Enc_AudioMode(ASN1encoding_t enc, AudioMode *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionMode(ASN1encoding_t enc, EncryptionMode *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceRequest(ASN1encoding_t enc, ConferenceRequest *val);
|
|
static int ASN1CALL ASN1Enc_CertSelectionCriteria(ASN1encoding_t enc, PCertSelectionCriteria *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse(ASN1encoding_t enc, ConferenceResponse *val);
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand(ASN1encoding_t enc, EndSessionCommand *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceCommand(ASN1encoding_t enc, ConferenceCommand *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_userInputSupportIndication(ASN1encoding_t enc, UserInputIndication_userInputSupportIndication *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication_type(ASN1encoding_t enc, MiscellaneousIndication_type *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type(ASN1encoding_t enc, MiscellaneousCommand_type *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionCommand_encryptionAlgorithmID(ASN1encoding_t enc, EncryptionCommand_encryptionAlgorithmID *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry_nonStandard(ASN1encoding_t enc, PCommunicationModeTableEntry_nonStandard *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMode_secondaryEncoding(ASN1encoding_t enc, RedundancyEncodingMode_secondaryEncoding *val);
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters_adaptationLayerType(ASN1encoding_t enc, H223ModeParameters_adaptationLayerType *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySend_multiplexEntryDescriptors(ASN1encoding_t enc, PMultiplexEntrySend_multiplexEntryDescriptors *val);
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelAckParameters_nonStandard(ASN1encoding_t enc, PH2250LogicalChannelAckParameters_nonStandard *val);
|
|
static int ASN1CALL ASN1Enc_RTPPayloadType_payloadDescriptor(ASN1encoding_t enc, RTPPayloadType_payloadDescriptor *val);
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters_nonStandard(ASN1encoding_t enc, PH2250LogicalChannelParameters_nonStandard *val);
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters_adaptationLayerType(ASN1encoding_t enc, H223LogicalChannelParameters_adaptationLayerType *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceCapability_nonStandardData(ASN1encoding_t enc, PConferenceCapability_nonStandardData *val);
|
|
static int ASN1CALL ASN1Enc_UserInputCapability_nonStandard(ASN1encoding_t enc, UserInputCapability_nonStandard *val);
|
|
static int ASN1CALL ASN1Enc_DataProtocolCapability_v76wCompression(ASN1encoding_t enc, DataProtocolCapability_v76wCompression *val);
|
|
static int ASN1CALL ASN1Enc_H263Options_modeCombos(ASN1encoding_t enc, PH263Options_modeCombos *val);
|
|
static int ASN1CALL ASN1Enc_TransportCapability_qOSCapabilities(ASN1encoding_t enc, PTransportCapability_qOSCapabilities *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardMessage(ASN1encoding_t enc, NonStandardMessage *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingCapability(ASN1encoding_t enc, RedundancyEncodingCapability *val);
|
|
static int ASN1CALL ASN1Enc_H263VideoCapability(ASN1encoding_t enc, H263VideoCapability *val);
|
|
static int ASN1CALL ASN1Enc_EnhancementOptions(ASN1encoding_t enc, EnhancementOptions *val);
|
|
static int ASN1CALL ASN1Enc_DataProtocolCapability(ASN1encoding_t enc, DataProtocolCapability *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionAuthenticationAndIntegrity(ASN1encoding_t enc, EncryptionAuthenticationAndIntegrity *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionCapability(ASN1encoding_t enc, PEncryptionCapability *val);
|
|
static int ASN1CALL ASN1Enc_UserInputCapability(ASN1encoding_t enc, UserInputCapability *val);
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters(ASN1encoding_t enc, H223LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters(ASN1encoding_t enc, V76LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_RTPPayloadType(ASN1encoding_t enc, RTPPayloadType *val);
|
|
static int ASN1CALL ASN1Enc_H245TransportAddress(ASN1encoding_t enc, H245TransportAddress *val);
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelAckParameters(ASN1encoding_t enc, H2250LogicalChannelAckParameters *val);
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters(ASN1encoding_t enc, H223ModeParameters *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMode(ASN1encoding_t enc, RedundancyEncodingMode *val);
|
|
static int ASN1CALL ASN1Enc_VideoMode(ASN1encoding_t enc, VideoMode *val);
|
|
static int ASN1CALL ASN1Enc_EncryptionCommand(ASN1encoding_t enc, EncryptionCommand *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand(ASN1encoding_t enc, MiscellaneousCommand *val);
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication(ASN1encoding_t enc, MiscellaneousIndication *val);
|
|
static int ASN1CALL ASN1Enc_MCLocationIndication(ASN1encoding_t enc, MCLocationIndication *val);
|
|
static int ASN1CALL ASN1Enc_UserInputIndication(ASN1encoding_t enc, UserInputIndication *val);
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application_nlpid(ASN1encoding_t enc, DataApplicationCapability_application_nlpid *val);
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application_t84(ASN1encoding_t enc, DataApplicationCapability_application_t84 *val);
|
|
static int ASN1CALL ASN1Enc_DataMode_application_nlpid(ASN1encoding_t enc, DataMode_application_nlpid *val);
|
|
static int ASN1CALL ASN1Enc_DataMode_application(ASN1encoding_t enc, DataMode_application *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_forwardMultiplexAckParameters(ASN1encoding_t enc, OpenLogicalChannelAck_forwardMultiplexAckParameters *val);
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters_mediaPacketization(ASN1encoding_t enc, H2250LogicalChannelParameters_mediaPacketization *val);
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_networkAddress(ASN1encoding_t enc, NetworkAccessParameters_networkAddress *val);
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application(ASN1encoding_t enc, DataApplicationCapability_application *val);
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_spatialEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_spatialEnhancement *val);
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_snrEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_snrEnhancement *val);
|
|
static int ASN1CALL ASN1Enc_MediaPacketizationCapability_rtpPayloadType(ASN1encoding_t enc, MediaPacketizationCapability_rtpPayloadType *val);
|
|
static int ASN1CALL ASN1Enc_H2250Capability_redundancyEncodingCapability(ASN1encoding_t enc, PH2250Capability_redundancyEncodingCapability *val);
|
|
static int ASN1CALL ASN1Enc_CommandMessage(ASN1encoding_t enc, CommandMessage *val);
|
|
static int ASN1CALL ASN1Enc_H235SecurityCapability(ASN1encoding_t enc, H235SecurityCapability *val);
|
|
static int ASN1CALL ASN1Enc_MediaPacketizationCapability(ASN1encoding_t enc, MediaPacketizationCapability *val);
|
|
static int ASN1CALL ASN1Enc_VideoCapability(ASN1encoding_t enc, VideoCapability *val);
|
|
static int ASN1CALL ASN1Enc_BEnhancementParameters(ASN1encoding_t enc, BEnhancementParameters *val);
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability(ASN1encoding_t enc, DataApplicationCapability *val);
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters(ASN1encoding_t enc, NetworkAccessParameters *val);
|
|
static int ASN1CALL ASN1Enc_H2250ModeParameters(ASN1encoding_t enc, H2250ModeParameters *val);
|
|
static int ASN1CALL ASN1Enc_DataMode(ASN1encoding_t enc, DataMode *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry_dataType(ASN1encoding_t enc, CommunicationModeTableEntry_dataType *val);
|
|
static int ASN1CALL ASN1Enc_H235Mode_mediaMode(ASN1encoding_t enc, H235Mode_mediaMode *val);
|
|
static int ASN1CALL ASN1Enc_H235Media_mediaType(ASN1encoding_t enc, H235Media_mediaType *val);
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_bPictureEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_bPictureEnhancement *val);
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_distributedData(ASN1encoding_t enc, PMediaDistributionCapability_distributedData *val);
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_centralizedData(ASN1encoding_t enc, PMediaDistributionCapability_centralizedData *val);
|
|
static int ASN1CALL ASN1Enc_Capability(ASN1encoding_t enc, Capability *val);
|
|
static int ASN1CALL ASN1Enc_H2250Capability(ASN1encoding_t enc, H2250Capability *val);
|
|
static int ASN1CALL ASN1Enc_H235Media(ASN1encoding_t enc, H235Media *val);
|
|
static int ASN1CALL ASN1Enc_H235Mode(ASN1encoding_t enc, H235Mode *val);
|
|
static int ASN1CALL ASN1Enc_ModeElement_type(ASN1encoding_t enc, ModeElement_type *val);
|
|
static int ASN1CALL ASN1Enc_CapabilityTableEntry(ASN1encoding_t enc, CapabilityTableEntry *val);
|
|
static int ASN1CALL ASN1Enc_MultiplexCapability(ASN1encoding_t enc, MultiplexCapability *val);
|
|
static int ASN1CALL ASN1Enc_DataType(ASN1encoding_t enc, DataType *val);
|
|
static int ASN1CALL ASN1Enc_RedundancyEncoding(ASN1encoding_t enc, RedundancyEncoding *val);
|
|
static int ASN1CALL ASN1Enc_ModeElement(ASN1encoding_t enc, ModeElement *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry(ASN1encoding_t enc, CommunicationModeTableEntry *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeResponse_communicationModeTable(ASN1encoding_t enc, PCommunicationModeResponse_communicationModeTable *val);
|
|
static int ASN1CALL ASN1Enc_CommunicationModeCommand_communicationModeTable(ASN1encoding_t enc, PCommunicationModeCommand_communicationModeTable *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet_capabilityTable(ASN1encoding_t enc, PTerminalCapabilitySet_capabilityTable *val);
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet(ASN1encoding_t enc, TerminalCapabilitySet *val);
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters(ASN1encoding_t enc, H2250LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_ModeDescription(ASN1encoding_t enc, ModeDescription *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Enc_RequestMode_requestedModes(ASN1encoding_t enc, PRequestMode_requestedModes *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannelAck_reverseLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannel_reverseLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannel_forwardLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel(ASN1encoding_t enc, OpenLogicalChannel *val);
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck(ASN1encoding_t enc, OpenLogicalChannelAck *val);
|
|
static int ASN1CALL ASN1Enc_RequestMessage(ASN1encoding_t enc, RequestMessage *val);
|
|
static int ASN1CALL ASN1Enc_ResponseMessage(ASN1encoding_t enc, ResponseMessage *val);
|
|
static int ASN1CALL ASN1Enc_FastConnectOLC(ASN1encoding_t enc, FastConnectOLC *val);
|
|
static int ASN1CALL ASN1Enc_FunctionNotUnderstood(ASN1encoding_t enc, FunctionNotUnderstood *val);
|
|
static int ASN1CALL ASN1Enc_IndicationMessage(ASN1encoding_t enc, IndicationMessage *val);
|
|
static int ASN1CALL ASN1Enc_MultimediaSystemControlMessage(ASN1encoding_t enc, MultimediaSystemControlMessage *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1_errorCorrection(ASN1decoding_t dec, NewATMVCIndication_aal_aal1_errorCorrection *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1_clockRecovery(ASN1decoding_t dec, NewATMVCIndication_aal_aal1_clockRecovery *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(ASN1decoding_t dec, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount *val);
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode_eRM_recovery(ASN1decoding_t dec, V76LogicalChannelParameters_mode_eRM_recovery *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_extendedPAR_Set *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI_customPCF_Set(ASN1decoding_t dec, CustomPictureFormat_mPI_customPCF_Set *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates_type_rangeOfBitRates(ASN1decoding_t dec, VCCapability_availableBitRates_type_rangeOfBitRates *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(ASN1decoding_t dec, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates_type(ASN1decoding_t dec, VCCapability_availableBitRates_type *val);
|
|
static int ASN1CALL ASN1Dec_H223Capability_h223MultiplexTableCapability_enhanced(ASN1decoding_t dec, H223Capability_h223MultiplexTableCapability_enhanced *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI_customPCF(ASN1decoding_t dec, CustomPictureFormat_mPI_customPCF *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_extendedPAR *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val);
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters_adaptationLayerType_al3(ASN1decoding_t dec, H223LogicalChannelParameters_adaptationLayerType_al3 *val);
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode_eRM(ASN1decoding_t dec, V76LogicalChannelParameters_mode_eRM *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress_route(ASN1decoding_t dec, PUnicastAddress_iPSourceRouteAddress_route *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress_routing(ASN1decoding_t dec, UnicastAddress_iPSourceRouteAddress_routing *val);
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters_adaptationLayerType_al3(ASN1decoding_t dec, H223ModeParameters_adaptationLayerType_al3 *val);
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(ASN1decoding_t dec, SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val);
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(ASN1decoding_t dec, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart(ASN1decoding_t dec, MiscellaneousCommand_type_progressiveRefinementStart *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_videoFastUpdateMB(ASN1decoding_t dec, MiscellaneousCommand_type_videoFastUpdateMB *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_videoFastUpdateGOB(ASN1decoding_t dec, MiscellaneousCommand_type_videoFastUpdateGOB *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication_type_videoNotDecodedMBs(ASN1decoding_t dec, MiscellaneousIndication_type_videoNotDecodedMBs *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal5(ASN1decoding_t dec, NewATMVCIndication_aal_aal5 *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1(ASN1decoding_t dec, NewATMVCIndication_aal_aal1 *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_reverseParameters_multiplex(ASN1decoding_t dec, NewATMVCIndication_reverseParameters_multiplex *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signal_rtp(ASN1decoding_t dec, UserInputIndication_signal_rtp *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signalUpdate_rtp(ASN1decoding_t dec, UserInputIndication_signalUpdate_rtp *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signalUpdate(ASN1decoding_t dec, UserInputIndication_signalUpdate *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signal(ASN1decoding_t dec, UserInputIndication_signal *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_reverseParameters(ASN1decoding_t dec, NewATMVCIndication_reverseParameters *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_multiplex(ASN1decoding_t dec, NewATMVCIndication_multiplex *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal(ASN1decoding_t dec, NewATMVCIndication_aal *val);
|
|
static int ASN1CALL ASN1Dec_JitterIndication_scope(ASN1decoding_t dec, JitterIndication_scope *val);
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupported_cause(ASN1decoding_t dec, FunctionNotSupported_cause *val);
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration_h223AnnexADoubleFlag(ASN1decoding_t dec, H223MultiplexReconfiguration_h223AnnexADoubleFlag *val);
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration_h223ModeChange(ASN1decoding_t dec, H223MultiplexReconfiguration_h223ModeChange *val);
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand_isdnOptions(ASN1decoding_t dec, EndSessionCommand_isdnOptions *val);
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand_gstnOptions(ASN1decoding_t dec, EndSessionCommand_gstnOptions *val);
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand_restriction(ASN1decoding_t dec, FlowControlCommand_restriction *val);
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand_scope(ASN1decoding_t dec, FlowControlCommand_scope *val);
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest(ASN1decoding_t dec, SendTerminalCapabilitySet_specificRequest *val);
|
|
static int ASN1CALL ASN1Dec_RemoteMCResponse_reject(ASN1decoding_t dec, RemoteMCResponse_reject *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_sendThisSourceResponse(ASN1decoding_t dec, ConferenceResponse_sendThisSourceResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_makeTerminalBroadcasterResponse(ASN1decoding_t dec, ConferenceResponse_makeTerminalBroadcasterResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_broadcastMyLogicalChannelResponse(ASN1decoding_t dec, ConferenceResponse_broadcastMyLogicalChannelResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_extensionAddressResponse(ASN1decoding_t dec, ConferenceResponse_extensionAddressResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_makeMeChairResponse(ASN1decoding_t dec, ConferenceResponse_makeMeChairResponse *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject_cause(ASN1decoding_t dec, MaintenanceLoopReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject_type(ASN1decoding_t dec, MaintenanceLoopReject_type *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopAck_type(ASN1decoding_t dec, MaintenanceLoopAck_type *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopRequest_type(ASN1decoding_t dec, MaintenanceLoopRequest_type *val);
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCMode_g723AnnexCAudioMode(ASN1decoding_t dec, G7231AnnexCMode_g723AnnexCAudioMode *val);
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_multichannelType(ASN1decoding_t dec, IS13818AudioMode_multichannelType *val);
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_audioSampling(ASN1decoding_t dec, IS13818AudioMode_audioSampling *val);
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_audioLayer(ASN1decoding_t dec, IS13818AudioMode_audioLayer *val);
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_multichannelType(ASN1decoding_t dec, IS11172AudioMode_multichannelType *val);
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_audioSampling(ASN1decoding_t dec, IS11172AudioMode_audioSampling *val);
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_audioLayer(ASN1decoding_t dec, IS11172AudioMode_audioLayer *val);
|
|
static int ASN1CALL ASN1Dec_AudioMode_g7231(ASN1decoding_t dec, AudioMode_g7231 *val);
|
|
static int ASN1CALL ASN1Dec_H263VideoMode_resolution(ASN1decoding_t dec, H263VideoMode_resolution *val);
|
|
static int ASN1CALL ASN1Dec_H262VideoMode_profileAndLevel(ASN1decoding_t dec, H262VideoMode_profileAndLevel *val);
|
|
static int ASN1CALL ASN1Dec_H261VideoMode_resolution(ASN1decoding_t dec, H261VideoMode_resolution *val);
|
|
static int ASN1CALL ASN1Dec_RequestModeReject_cause(ASN1decoding_t dec, RequestModeReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_RequestModeAck_response(ASN1decoding_t dec, RequestModeAck_response *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRelease_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryRelease_entryNumbers *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRejectionDescriptions_cause(ASN1decoding_t dec, RequestMultiplexEntryRejectionDescriptions_cause *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryReject_entryNumbers *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryAck_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryAck_entryNumbers *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntry_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntry_entryNumbers *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendRelease_multiplexTableEntryNumber(ASN1decoding_t dec, MultiplexEntrySendRelease_multiplexTableEntryNumber *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryRejectionDescriptions_cause(ASN1decoding_t dec, MultiplexEntryRejectionDescriptions_cause *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendAck_multiplexTableEntryNumber(ASN1decoding_t dec, MultiplexEntrySendAck_multiplexTableEntryNumber *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_repeatCount(ASN1decoding_t dec, MultiplexElement_repeatCount *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_type(ASN1decoding_t dec, MultiplexElement_type *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseReject_cause(ASN1decoding_t dec, RequestChannelCloseReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelClose_reason(ASN1decoding_t dec, RequestChannelClose_reason *val);
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel_reason(ASN1decoding_t dec, CloseLogicalChannel_reason *val);
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel_source(ASN1decoding_t dec, CloseLogicalChannel_source *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelReject_cause(ASN1decoding_t dec, OpenLogicalChannelReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_MulticastAddress_iP6Address(ASN1decoding_t dec, MulticastAddress_iP6Address *val);
|
|
static int ASN1CALL ASN1Dec_MulticastAddress_iPAddress(ASN1decoding_t dec, MulticastAddress_iPAddress *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress(ASN1decoding_t dec, UnicastAddress_iPSourceRouteAddress *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iP6Address(ASN1decoding_t dec, UnicastAddress_iP6Address *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPXAddress(ASN1decoding_t dec, UnicastAddress_iPXAddress *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPAddress(ASN1decoding_t dec, UnicastAddress_iPAddress *val);
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode(ASN1decoding_t dec, V76LogicalChannelParameters_mode *val);
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_suspendResume(ASN1decoding_t dec, V76LogicalChannelParameters_suspendResume *val);
|
|
static int ASN1CALL ASN1Dec_H223AnnexCArqParameters_numberOfRetransmissions(ASN1decoding_t dec, H223AnnexCArqParameters_numberOfRetransmissions *val);
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_crcLength(ASN1decoding_t dec, H223AL3MParameters_crcLength *val);
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_headerFormat(ASN1decoding_t dec, H223AL3MParameters_headerFormat *val);
|
|
static int ASN1CALL ASN1Dec_H223AL2MParameters_headerFEC(ASN1decoding_t dec, H223AL2MParameters_headerFEC *val);
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_crcLength(ASN1decoding_t dec, H223AL1MParameters_crcLength *val);
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_headerFEC(ASN1decoding_t dec, H223AL1MParameters_headerFEC *val);
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_transferMode(ASN1decoding_t dec, H223AL1MParameters_transferMode *val);
|
|
static int ASN1CALL ASN1Dec_Q2931Address_address(ASN1decoding_t dec, Q2931Address_address *val);
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_t120SetupProcedure(ASN1decoding_t dec, NetworkAccessParameters_t120SetupProcedure *val);
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_distribution(ASN1decoding_t dec, NetworkAccessParameters_distribution *val);
|
|
static int ASN1CALL ASN1Dec_T84Profile_t84Restricted(ASN1decoding_t dec, T84Profile_t84Restricted *val);
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCCapability_g723AnnexCAudioMode(ASN1decoding_t dec, G7231AnnexCCapability_g723AnnexCAudioMode *val);
|
|
static int ASN1CALL ASN1Dec_AudioCapability_g7231(ASN1decoding_t dec, AudioCapability_g7231 *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI(ASN1decoding_t dec, CustomPictureFormat_mPI *val);
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection_videoBackChannelSend(ASN1decoding_t dec, RefPictureSelection_videoBackChannelSend *val);
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection_additionalPictureMemory(ASN1decoding_t dec, RefPictureSelection_additionalPictureMemory *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyFrameMapping_frameSequence(ASN1decoding_t dec, RTPH263VideoRedundancyFrameMapping_frameSequence *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_containedThreads(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding_containedThreads *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding_frameToThreadMapping *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingCapability_secondaryEncoding(ASN1decoding_t dec, PRedundancyEncodingCapability_secondaryEncoding *val);
|
|
static int ASN1CALL ASN1Dec_H2250Capability_mcCapability(ASN1decoding_t dec, H2250Capability_mcCapability *val);
|
|
static int ASN1CALL ASN1Dec_H223Capability_mobileOperationTransmitCapability(ASN1decoding_t dec, H223Capability_mobileOperationTransmitCapability *val);
|
|
static int ASN1CALL ASN1Dec_H223Capability_h223MultiplexTableCapability(ASN1decoding_t dec, H223Capability_h223MultiplexTableCapability *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates(ASN1decoding_t dec, VCCapability_availableBitRates *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability_aal5(ASN1decoding_t dec, VCCapability_aal5 *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability_aal1(ASN1decoding_t dec, VCCapability_aal1 *val);
|
|
static int ASN1CALL ASN1Dec_Capability_h233EncryptionReceiveCapability(ASN1decoding_t dec, Capability_h233EncryptionReceiveCapability *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject_cause(ASN1decoding_t dec, TerminalCapabilitySetReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationReject_cause(ASN1decoding_t dec, MasterSlaveDeterminationReject_cause *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationAck_decision(ASN1decoding_t dec, MasterSlaveDeterminationAck_decision *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardIdentifier_h221NonStandard(ASN1decoding_t dec, NonStandardIdentifier_h221NonStandard *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardIdentifier(ASN1decoding_t dec, NonStandardIdentifier *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDetermination(ASN1decoding_t dec, MasterSlaveDetermination *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationAck(ASN1decoding_t dec, MasterSlaveDeterminationAck *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationReject(ASN1decoding_t dec, MasterSlaveDeterminationReject *val);
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationRelease(ASN1decoding_t dec, MasterSlaveDeterminationRelease *val);
|
|
static int ASN1CALL ASN1Dec_CapabilityDescriptor(ASN1decoding_t dec, CapabilityDescriptor *val);
|
|
static int ASN1CALL ASN1Dec_AlternativeCapabilitySet(ASN1decoding_t dec, AlternativeCapabilitySet *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetAck(ASN1decoding_t dec, TerminalCapabilitySetAck *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject(ASN1decoding_t dec, TerminalCapabilitySetReject *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetRelease(ASN1decoding_t dec, TerminalCapabilitySetRelease *val);
|
|
static int ASN1CALL ASN1Dec_H222Capability(ASN1decoding_t dec, H222Capability *val);
|
|
static int ASN1CALL ASN1Dec_VCCapability(ASN1decoding_t dec, VCCapability *val);
|
|
static int ASN1CALL ASN1Dec_H223AnnexCCapability(ASN1decoding_t dec, H223AnnexCCapability *val);
|
|
static int ASN1CALL ASN1Dec_V75Capability(ASN1decoding_t dec, V75Capability *val);
|
|
static int ASN1CALL ASN1Dec_QOSMode(ASN1decoding_t dec, QOSMode *val);
|
|
static int ASN1CALL ASN1Dec_ATMParameters(ASN1decoding_t dec, ATMParameters *val);
|
|
static int ASN1CALL ASN1Dec_MediaTransportType(ASN1decoding_t dec, MediaTransportType *val);
|
|
static int ASN1CALL ASN1Dec_MediaChannelCapability(ASN1decoding_t dec, MediaChannelCapability *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyFrameMapping(ASN1decoding_t dec, RTPH263VideoRedundancyFrameMapping *val);
|
|
static int ASN1CALL ASN1Dec_MultipointCapability(ASN1decoding_t dec, MultipointCapability *val);
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability(ASN1decoding_t dec, MediaDistributionCapability *val);
|
|
static int ASN1CALL ASN1Dec_H261VideoCapability(ASN1decoding_t dec, H261VideoCapability *val);
|
|
static int ASN1CALL ASN1Dec_H262VideoCapability(ASN1decoding_t dec, H262VideoCapability *val);
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo(ASN1decoding_t dec, EnhancementLayerInfo *val);
|
|
static int ASN1CALL ASN1Dec_TransparencyParameters(ASN1decoding_t dec, TransparencyParameters *val);
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection(ASN1decoding_t dec, RefPictureSelection *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureClockFrequency(ASN1decoding_t dec, CustomPictureClockFrequency *val);
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat(ASN1decoding_t dec, CustomPictureFormat *val);
|
|
static int ASN1CALL ASN1Dec_H263ModeComboFlags(ASN1decoding_t dec, H263ModeComboFlags *val);
|
|
static int ASN1CALL ASN1Dec_IS11172VideoCapability(ASN1decoding_t dec, IS11172VideoCapability *val);
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCCapability(ASN1decoding_t dec, G7231AnnexCCapability *val);
|
|
static int ASN1CALL ASN1Dec_IS11172AudioCapability(ASN1decoding_t dec, IS11172AudioCapability *val);
|
|
static int ASN1CALL ASN1Dec_IS13818AudioCapability(ASN1decoding_t dec, IS13818AudioCapability *val);
|
|
static int ASN1CALL ASN1Dec_GSMAudioCapability(ASN1decoding_t dec, GSMAudioCapability *val);
|
|
static int ASN1CALL ASN1Dec_V42bis(ASN1decoding_t dec, V42bis *val);
|
|
static int ASN1CALL ASN1Dec_T84Profile(ASN1decoding_t dec, T84Profile *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceCapability(ASN1decoding_t dec, ConferenceCapability *val);
|
|
static int ASN1CALL ASN1Dec_Q2931Address(ASN1decoding_t dec, Q2931Address *val);
|
|
static int ASN1CALL ASN1Dec_V75Parameters(ASN1decoding_t dec, V75Parameters *val);
|
|
static int ASN1CALL ASN1Dec_H222LogicalChannelParameters(ASN1decoding_t dec, H222LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_H223AL2MParameters(ASN1decoding_t dec, H223AL2MParameters *val);
|
|
static int ASN1CALL ASN1Dec_H223AnnexCArqParameters(ASN1decoding_t dec, H223AnnexCArqParameters *val);
|
|
static int ASN1CALL ASN1Dec_CRCLength(ASN1decoding_t dec, CRCLength *val);
|
|
static int ASN1CALL ASN1Dec_EscrowData(ASN1decoding_t dec, EscrowData *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelReject(ASN1decoding_t dec, OpenLogicalChannelReject *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelConfirm(ASN1decoding_t dec, OpenLogicalChannelConfirm *val);
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel(ASN1decoding_t dec, CloseLogicalChannel *val);
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannelAck(ASN1decoding_t dec, CloseLogicalChannelAck *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseAck(ASN1decoding_t dec, RequestChannelCloseAck *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseReject(ASN1decoding_t dec, RequestChannelCloseReject *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseRelease(ASN1decoding_t dec, RequestChannelCloseRelease *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySend(ASN1decoding_t dec, MultiplexEntrySend *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexElement(ASN1decoding_t dec, MultiplexElement *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendAck(ASN1decoding_t dec, MultiplexEntrySendAck *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryRejectionDescriptions(ASN1decoding_t dec, MultiplexEntryRejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendRelease(ASN1decoding_t dec, MultiplexEntrySendRelease *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntry(ASN1decoding_t dec, RequestMultiplexEntry *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryAck(ASN1decoding_t dec, RequestMultiplexEntryAck *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRejectionDescriptions(ASN1decoding_t dec, RequestMultiplexEntryRejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRelease(ASN1decoding_t dec, RequestMultiplexEntryRelease *val);
|
|
static int ASN1CALL ASN1Dec_RequestMode(ASN1decoding_t dec, RequestMode *val);
|
|
static int ASN1CALL ASN1Dec_RequestModeAck(ASN1decoding_t dec, RequestModeAck *val);
|
|
static int ASN1CALL ASN1Dec_RequestModeReject(ASN1decoding_t dec, RequestModeReject *val);
|
|
static int ASN1CALL ASN1Dec_RequestModeRelease(ASN1decoding_t dec, RequestModeRelease *val);
|
|
static int ASN1CALL ASN1Dec_V76ModeParameters(ASN1decoding_t dec, V76ModeParameters *val);
|
|
static int ASN1CALL ASN1Dec_H261VideoMode(ASN1decoding_t dec, H261VideoMode *val);
|
|
static int ASN1CALL ASN1Dec_H262VideoMode(ASN1decoding_t dec, H262VideoMode *val);
|
|
static int ASN1CALL ASN1Dec_IS11172VideoMode(ASN1decoding_t dec, IS11172VideoMode *val);
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode(ASN1decoding_t dec, IS11172AudioMode *val);
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode(ASN1decoding_t dec, IS13818AudioMode *val);
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCMode(ASN1decoding_t dec, G7231AnnexCMode *val);
|
|
static int ASN1CALL ASN1Dec_RoundTripDelayRequest(ASN1decoding_t dec, RoundTripDelayRequest *val);
|
|
static int ASN1CALL ASN1Dec_RoundTripDelayResponse(ASN1decoding_t dec, RoundTripDelayResponse *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopRequest(ASN1decoding_t dec, MaintenanceLoopRequest *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopAck(ASN1decoding_t dec, MaintenanceLoopAck *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject(ASN1decoding_t dec, MaintenanceLoopReject *val);
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopOffCommand(ASN1decoding_t dec, MaintenanceLoopOffCommand *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeCommand(ASN1decoding_t dec, CommunicationModeCommand *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeRequest(ASN1decoding_t dec, CommunicationModeRequest *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeResponse(ASN1decoding_t dec, CommunicationModeResponse *val);
|
|
static int ASN1CALL ASN1Dec_Criteria(ASN1decoding_t dec, Criteria *val);
|
|
static int ASN1CALL ASN1Dec_TerminalLabel(ASN1decoding_t dec, TerminalLabel *val);
|
|
static int ASN1CALL ASN1Dec_RequestAllTerminalIDsResponse(ASN1decoding_t dec, RequestAllTerminalIDsResponse *val);
|
|
static int ASN1CALL ASN1Dec_TerminalInformation(ASN1decoding_t dec, TerminalInformation *val);
|
|
static int ASN1CALL ASN1Dec_RemoteMCRequest(ASN1decoding_t dec, RemoteMCRequest *val);
|
|
static int ASN1CALL ASN1Dec_RemoteMCResponse(ASN1decoding_t dec, RemoteMCResponse *val);
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet(ASN1decoding_t dec, SendTerminalCapabilitySet *val);
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand(ASN1decoding_t dec, FlowControlCommand *val);
|
|
static int ASN1CALL ASN1Dec_SubstituteConferenceIDCommand(ASN1decoding_t dec, SubstituteConferenceIDCommand *val);
|
|
static int ASN1CALL ASN1Dec_KeyProtectionMethod(ASN1decoding_t dec, KeyProtectionMethod *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionUpdateRequest(ASN1decoding_t dec, EncryptionUpdateRequest *val);
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration(ASN1decoding_t dec, H223MultiplexReconfiguration *val);
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupported(ASN1decoding_t dec, FunctionNotSupported *val);
|
|
static int ASN1CALL ASN1Dec_TerminalYouAreSeeingInSubPictureNumber(ASN1decoding_t dec, TerminalYouAreSeeingInSubPictureNumber *val);
|
|
static int ASN1CALL ASN1Dec_VideoIndicateCompose(ASN1decoding_t dec, VideoIndicateCompose *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceIndication(ASN1decoding_t dec, ConferenceIndication *val);
|
|
static int ASN1CALL ASN1Dec_JitterIndication(ASN1decoding_t dec, JitterIndication *val);
|
|
static int ASN1CALL ASN1Dec_H223SkewIndication(ASN1decoding_t dec, H223SkewIndication *val);
|
|
static int ASN1CALL ASN1Dec_H2250MaximumSkewIndication(ASN1decoding_t dec, H2250MaximumSkewIndication *val);
|
|
static int ASN1CALL ASN1Dec_VendorIdentification(ASN1decoding_t dec, VendorIdentification *val);
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication(ASN1decoding_t dec, NewATMVCIndication *val);
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(ASN1decoding_t dec, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_type_subElementList(ASN1decoding_t dec, PMultiplexElement_type_subElementList *val);
|
|
static int ASN1CALL ASN1Dec_RequestAllTerminalIDsResponse_terminalInformation(ASN1decoding_t dec, PRequestAllTerminalIDsResponse_terminalInformation *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalCertificateResponse(ASN1decoding_t dec, ConferenceResponse_terminalCertificateResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_chairTokenOwnerResponse(ASN1decoding_t dec, ConferenceResponse_chairTokenOwnerResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalListResponse(ASN1decoding_t dec, ConferenceResponse_terminalListResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_passwordResponse(ASN1decoding_t dec, ConferenceResponse_passwordResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_conferenceIDResponse(ASN1decoding_t dec, ConferenceResponse_conferenceIDResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalIDResponse(ASN1decoding_t dec, ConferenceResponse_terminalIDResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_mCTerminalIDResponse(ASN1decoding_t dec, ConferenceResponse_mCTerminalIDResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceRequest_requestTerminalCertificate(ASN1decoding_t dec, ConferenceRequest_requestTerminalCertificate *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject_rejectionDescriptions(ASN1decoding_t dec, RequestMultiplexEntryReject_rejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendReject_rejectionDescriptions(ASN1decoding_t dec, MultiplexEntrySendReject_rejectionDescriptions *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryDescriptor_elementList(ASN1decoding_t dec, MultiplexEntryDescriptor_elementList *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionSync_escrowentry(ASN1decoding_t dec, PEncryptionSync_escrowentry *val);
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_arqType(ASN1decoding_t dec, H223AL3MParameters_arqType *val);
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_arqType(ASN1decoding_t dec, H223AL1MParameters_arqType *val);
|
|
static int ASN1CALL ASN1Dec_H263VideoModeCombos_h263VideoCoupledModes(ASN1decoding_t dec, H263VideoModeCombos_h263VideoCoupledModes *val);
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureFormat(ASN1decoding_t dec, PH263Options_customPictureFormat *val);
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureClockFrequency(ASN1decoding_t dec, PH263Options_customPictureClockFrequency *val);
|
|
static int ASN1CALL ASN1Dec_MultipointCapability_mediaDistributionCapability(ASN1decoding_t dec, PMultipointCapability_mediaDistributionCapability *val);
|
|
static int ASN1CALL ASN1Dec_TransportCapability_mediaChannelCapabilities(ASN1decoding_t dec, TransportCapability_mediaChannelCapabilities *val);
|
|
static int ASN1CALL ASN1Dec_H222Capability_vcCapability(ASN1decoding_t dec, PH222Capability_vcCapability *val);
|
|
static int ASN1CALL ASN1Dec_CapabilityDescriptor_simultaneousCapabilities(ASN1decoding_t dec, PCapabilityDescriptor_simultaneousCapabilities *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet_capabilityDescriptors(ASN1decoding_t dec, TerminalCapabilitySet_capabilityDescriptors *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardParameter(ASN1decoding_t dec, NonStandardParameter *val);
|
|
static int ASN1CALL ASN1Dec_H223Capability(ASN1decoding_t dec, H223Capability *val);
|
|
static int ASN1CALL ASN1Dec_V76Capability(ASN1decoding_t dec, V76Capability *val);
|
|
static int ASN1CALL ASN1Dec_RSVPParameters(ASN1decoding_t dec, RSVPParameters *val);
|
|
static int ASN1CALL ASN1Dec_QOSCapability(ASN1decoding_t dec, QOSCapability *val);
|
|
static int ASN1CALL ASN1Dec_TransportCapability(ASN1decoding_t dec, TransportCapability *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMethod(ASN1decoding_t dec, RedundancyEncodingMethod *val);
|
|
static int ASN1CALL ASN1Dec_H263Options(ASN1decoding_t dec, H263Options *val);
|
|
static int ASN1CALL ASN1Dec_H263VideoModeCombos(ASN1decoding_t dec, H263VideoModeCombos *val);
|
|
static int ASN1CALL ASN1Dec_AudioCapability(ASN1decoding_t dec, AudioCapability *val);
|
|
static int ASN1CALL ASN1Dec_CompressionType(ASN1decoding_t dec, CompressionType *val);
|
|
static int ASN1CALL ASN1Dec_MediaEncryptionAlgorithm(ASN1decoding_t dec, MediaEncryptionAlgorithm *val);
|
|
static int ASN1CALL ASN1Dec_AuthenticationCapability(ASN1decoding_t dec, AuthenticationCapability *val);
|
|
static int ASN1CALL ASN1Dec_IntegrityCapability(ASN1decoding_t dec, IntegrityCapability *val);
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters(ASN1decoding_t dec, H223AL1MParameters *val);
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters(ASN1decoding_t dec, H223AL3MParameters *val);
|
|
static int ASN1CALL ASN1Dec_V76HDLCParameters(ASN1decoding_t dec, V76HDLCParameters *val);
|
|
static int ASN1CALL ASN1Dec_UnicastAddress(ASN1decoding_t dec, UnicastAddress *val);
|
|
static int ASN1CALL ASN1Dec_MulticastAddress(ASN1decoding_t dec, MulticastAddress *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionSync(ASN1decoding_t dec, EncryptionSync *val);
|
|
static int ASN1CALL ASN1Dec_RequestChannelClose(ASN1decoding_t dec, RequestChannelClose *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryDescriptor(ASN1decoding_t dec, MultiplexEntryDescriptor *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendReject(ASN1decoding_t dec, MultiplexEntrySendReject *val);
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject(ASN1decoding_t dec, RequestMultiplexEntryReject *val);
|
|
static int ASN1CALL ASN1Dec_H263VideoMode(ASN1decoding_t dec, H263VideoMode *val);
|
|
static int ASN1CALL ASN1Dec_AudioMode(ASN1decoding_t dec, AudioMode *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionMode(ASN1decoding_t dec, EncryptionMode *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceRequest(ASN1decoding_t dec, ConferenceRequest *val);
|
|
static int ASN1CALL ASN1Dec_CertSelectionCriteria(ASN1decoding_t dec, PCertSelectionCriteria *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse(ASN1decoding_t dec, ConferenceResponse *val);
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand(ASN1decoding_t dec, EndSessionCommand *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceCommand(ASN1decoding_t dec, ConferenceCommand *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_userInputSupportIndication(ASN1decoding_t dec, UserInputIndication_userInputSupportIndication *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication_type(ASN1decoding_t dec, MiscellaneousIndication_type *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type(ASN1decoding_t dec, MiscellaneousCommand_type *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionCommand_encryptionAlgorithmID(ASN1decoding_t dec, EncryptionCommand_encryptionAlgorithmID *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry_nonStandard(ASN1decoding_t dec, PCommunicationModeTableEntry_nonStandard *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMode_secondaryEncoding(ASN1decoding_t dec, RedundancyEncodingMode_secondaryEncoding *val);
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters_adaptationLayerType(ASN1decoding_t dec, H223ModeParameters_adaptationLayerType *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySend_multiplexEntryDescriptors(ASN1decoding_t dec, PMultiplexEntrySend_multiplexEntryDescriptors *val);
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelAckParameters_nonStandard(ASN1decoding_t dec, PH2250LogicalChannelAckParameters_nonStandard *val);
|
|
static int ASN1CALL ASN1Dec_RTPPayloadType_payloadDescriptor(ASN1decoding_t dec, RTPPayloadType_payloadDescriptor *val);
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters_nonStandard(ASN1decoding_t dec, PH2250LogicalChannelParameters_nonStandard *val);
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters_adaptationLayerType(ASN1decoding_t dec, H223LogicalChannelParameters_adaptationLayerType *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceCapability_nonStandardData(ASN1decoding_t dec, PConferenceCapability_nonStandardData *val);
|
|
static int ASN1CALL ASN1Dec_UserInputCapability_nonStandard(ASN1decoding_t dec, UserInputCapability_nonStandard *val);
|
|
static int ASN1CALL ASN1Dec_DataProtocolCapability_v76wCompression(ASN1decoding_t dec, DataProtocolCapability_v76wCompression *val);
|
|
static int ASN1CALL ASN1Dec_H263Options_modeCombos(ASN1decoding_t dec, PH263Options_modeCombos *val);
|
|
static int ASN1CALL ASN1Dec_TransportCapability_qOSCapabilities(ASN1decoding_t dec, PTransportCapability_qOSCapabilities *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardMessage(ASN1decoding_t dec, NonStandardMessage *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingCapability(ASN1decoding_t dec, RedundancyEncodingCapability *val);
|
|
static int ASN1CALL ASN1Dec_H263VideoCapability(ASN1decoding_t dec, H263VideoCapability *val);
|
|
static int ASN1CALL ASN1Dec_EnhancementOptions(ASN1decoding_t dec, EnhancementOptions *val);
|
|
static int ASN1CALL ASN1Dec_DataProtocolCapability(ASN1decoding_t dec, DataProtocolCapability *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionAuthenticationAndIntegrity(ASN1decoding_t dec, EncryptionAuthenticationAndIntegrity *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionCapability(ASN1decoding_t dec, PEncryptionCapability *val);
|
|
static int ASN1CALL ASN1Dec_UserInputCapability(ASN1decoding_t dec, UserInputCapability *val);
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters(ASN1decoding_t dec, H223LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters(ASN1decoding_t dec, V76LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_RTPPayloadType(ASN1decoding_t dec, RTPPayloadType *val);
|
|
static int ASN1CALL ASN1Dec_H245TransportAddress(ASN1decoding_t dec, H245TransportAddress *val);
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelAckParameters(ASN1decoding_t dec, H2250LogicalChannelAckParameters *val);
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters(ASN1decoding_t dec, H223ModeParameters *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMode(ASN1decoding_t dec, RedundancyEncodingMode *val);
|
|
static int ASN1CALL ASN1Dec_VideoMode(ASN1decoding_t dec, VideoMode *val);
|
|
static int ASN1CALL ASN1Dec_EncryptionCommand(ASN1decoding_t dec, EncryptionCommand *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand(ASN1decoding_t dec, MiscellaneousCommand *val);
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication(ASN1decoding_t dec, MiscellaneousIndication *val);
|
|
static int ASN1CALL ASN1Dec_MCLocationIndication(ASN1decoding_t dec, MCLocationIndication *val);
|
|
static int ASN1CALL ASN1Dec_UserInputIndication(ASN1decoding_t dec, UserInputIndication *val);
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application_nlpid(ASN1decoding_t dec, DataApplicationCapability_application_nlpid *val);
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application_t84(ASN1decoding_t dec, DataApplicationCapability_application_t84 *val);
|
|
static int ASN1CALL ASN1Dec_DataMode_application_nlpid(ASN1decoding_t dec, DataMode_application_nlpid *val);
|
|
static int ASN1CALL ASN1Dec_DataMode_application(ASN1decoding_t dec, DataMode_application *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_forwardMultiplexAckParameters(ASN1decoding_t dec, OpenLogicalChannelAck_forwardMultiplexAckParameters *val);
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters_mediaPacketization(ASN1decoding_t dec, H2250LogicalChannelParameters_mediaPacketization *val);
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_networkAddress(ASN1decoding_t dec, NetworkAccessParameters_networkAddress *val);
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application(ASN1decoding_t dec, DataApplicationCapability_application *val);
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_spatialEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_spatialEnhancement *val);
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_snrEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_snrEnhancement *val);
|
|
static int ASN1CALL ASN1Dec_MediaPacketizationCapability_rtpPayloadType(ASN1decoding_t dec, MediaPacketizationCapability_rtpPayloadType *val);
|
|
static int ASN1CALL ASN1Dec_H2250Capability_redundancyEncodingCapability(ASN1decoding_t dec, PH2250Capability_redundancyEncodingCapability *val);
|
|
static int ASN1CALL ASN1Dec_CommandMessage(ASN1decoding_t dec, CommandMessage *val);
|
|
static int ASN1CALL ASN1Dec_H235SecurityCapability(ASN1decoding_t dec, H235SecurityCapability *val);
|
|
static int ASN1CALL ASN1Dec_MediaPacketizationCapability(ASN1decoding_t dec, MediaPacketizationCapability *val);
|
|
static int ASN1CALL ASN1Dec_VideoCapability(ASN1decoding_t dec, VideoCapability *val);
|
|
static int ASN1CALL ASN1Dec_BEnhancementParameters(ASN1decoding_t dec, BEnhancementParameters *val);
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability(ASN1decoding_t dec, DataApplicationCapability *val);
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters(ASN1decoding_t dec, NetworkAccessParameters *val);
|
|
static int ASN1CALL ASN1Dec_H2250ModeParameters(ASN1decoding_t dec, H2250ModeParameters *val);
|
|
static int ASN1CALL ASN1Dec_DataMode(ASN1decoding_t dec, DataMode *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry_dataType(ASN1decoding_t dec, CommunicationModeTableEntry_dataType *val);
|
|
static int ASN1CALL ASN1Dec_H235Mode_mediaMode(ASN1decoding_t dec, H235Mode_mediaMode *val);
|
|
static int ASN1CALL ASN1Dec_H235Media_mediaType(ASN1decoding_t dec, H235Media_mediaType *val);
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_bPictureEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_bPictureEnhancement *val);
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_distributedData(ASN1decoding_t dec, PMediaDistributionCapability_distributedData *val);
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_centralizedData(ASN1decoding_t dec, PMediaDistributionCapability_centralizedData *val);
|
|
static int ASN1CALL ASN1Dec_Capability(ASN1decoding_t dec, Capability *val);
|
|
static int ASN1CALL ASN1Dec_H2250Capability(ASN1decoding_t dec, H2250Capability *val);
|
|
static int ASN1CALL ASN1Dec_H235Media(ASN1decoding_t dec, H235Media *val);
|
|
static int ASN1CALL ASN1Dec_H235Mode(ASN1decoding_t dec, H235Mode *val);
|
|
static int ASN1CALL ASN1Dec_ModeElement_type(ASN1decoding_t dec, ModeElement_type *val);
|
|
static int ASN1CALL ASN1Dec_CapabilityTableEntry(ASN1decoding_t dec, CapabilityTableEntry *val);
|
|
static int ASN1CALL ASN1Dec_MultiplexCapability(ASN1decoding_t dec, MultiplexCapability *val);
|
|
static int ASN1CALL ASN1Dec_DataType(ASN1decoding_t dec, DataType *val);
|
|
static int ASN1CALL ASN1Dec_RedundancyEncoding(ASN1decoding_t dec, RedundancyEncoding *val);
|
|
static int ASN1CALL ASN1Dec_ModeElement(ASN1decoding_t dec, ModeElement *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry(ASN1decoding_t dec, CommunicationModeTableEntry *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeResponse_communicationModeTable(ASN1decoding_t dec, PCommunicationModeResponse_communicationModeTable *val);
|
|
static int ASN1CALL ASN1Dec_CommunicationModeCommand_communicationModeTable(ASN1decoding_t dec, PCommunicationModeCommand_communicationModeTable *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet_capabilityTable(ASN1decoding_t dec, PTerminalCapabilitySet_capabilityTable *val);
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet(ASN1decoding_t dec, TerminalCapabilitySet *val);
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters(ASN1decoding_t dec, H2250LogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_ModeDescription(ASN1decoding_t dec, ModeDescription *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static int ASN1CALL ASN1Dec_RequestMode_requestedModes(ASN1decoding_t dec, PRequestMode_requestedModes *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannelAck_reverseLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannel_reverseLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannel_forwardLogicalChannelParameters *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel(ASN1decoding_t dec, OpenLogicalChannel *val);
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck(ASN1decoding_t dec, OpenLogicalChannelAck *val);
|
|
static int ASN1CALL ASN1Dec_RequestMessage(ASN1decoding_t dec, RequestMessage *val);
|
|
static int ASN1CALL ASN1Dec_ResponseMessage(ASN1decoding_t dec, ResponseMessage *val);
|
|
static int ASN1CALL ASN1Dec_FastConnectOLC(ASN1decoding_t dec, FastConnectOLC *val);
|
|
static int ASN1CALL ASN1Dec_FunctionNotUnderstood(ASN1decoding_t dec, FunctionNotUnderstood *val);
|
|
static int ASN1CALL ASN1Dec_IndicationMessage(ASN1decoding_t dec, IndicationMessage *val);
|
|
static int ASN1CALL ASN1Dec_MultimediaSystemControlMessage(ASN1decoding_t dec, MultimediaSystemControlMessage *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_mPI_customPCF(CustomPictureFormat_mPI_customPCF *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation_extendedPAR(CustomPictureFormat_pixelAspectInformation_extendedPAR *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPSourceRouteAddress_route(PUnicastAddress_iPSourceRouteAddress_route *val);
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val);
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val);
|
|
static void ASN1CALL ASN1Free_UserInputIndication_signal(UserInputIndication_signal *val);
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest(SendTerminalCapabilitySet_specificRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_extensionAddressResponse(ConferenceResponse_extensionAddressResponse *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryRelease_entryNumbers(RequestMultiplexEntryRelease_entryNumbers *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject_entryNumbers(RequestMultiplexEntryReject_entryNumbers *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryAck_entryNumbers(RequestMultiplexEntryAck_entryNumbers *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntry_entryNumbers(RequestMultiplexEntry_entryNumbers *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendRelease_multiplexTableEntryNumber(MultiplexEntrySendRelease_multiplexTableEntryNumber *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendAck_multiplexTableEntryNumber(MultiplexEntrySendAck_multiplexTableEntryNumber *val);
|
|
static void ASN1CALL ASN1Free_MultiplexElement_type(MultiplexElement_type *val);
|
|
static void ASN1CALL ASN1Free_MulticastAddress_iP6Address(MulticastAddress_iP6Address *val);
|
|
static void ASN1CALL ASN1Free_MulticastAddress_iPAddress(MulticastAddress_iPAddress *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPSourceRouteAddress(UnicastAddress_iPSourceRouteAddress *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iP6Address(UnicastAddress_iP6Address *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPXAddress(UnicastAddress_iPXAddress *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPAddress(UnicastAddress_iPAddress *val);
|
|
static void ASN1CALL ASN1Free_Q2931Address_address(Q2931Address_address *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation(CustomPictureFormat_pixelAspectInformation *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_mPI(CustomPictureFormat_mPI *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyFrameMapping_frameSequence(RTPH263VideoRedundancyFrameMapping_frameSequence *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_containedThreads(RTPH263VideoRedundancyEncoding_containedThreads *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping(RTPH263VideoRedundancyEncoding_frameToThreadMapping *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingCapability_secondaryEncoding(PRedundancyEncodingCapability_secondaryEncoding *val);
|
|
static void ASN1CALL ASN1Free_NonStandardIdentifier(NonStandardIdentifier *val);
|
|
static void ASN1CALL ASN1Free_CapabilityDescriptor(CapabilityDescriptor *val);
|
|
static void ASN1CALL ASN1Free_AlternativeCapabilitySet(AlternativeCapabilitySet *val);
|
|
static void ASN1CALL ASN1Free_H222Capability(H222Capability *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding(RTPH263VideoRedundancyEncoding *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyFrameMapping(RTPH263VideoRedundancyFrameMapping *val);
|
|
static void ASN1CALL ASN1Free_MultipointCapability(MultipointCapability *val);
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability(MediaDistributionCapability *val);
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo(EnhancementLayerInfo *val);
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat(CustomPictureFormat *val);
|
|
static void ASN1CALL ASN1Free_ConferenceCapability(ConferenceCapability *val);
|
|
static void ASN1CALL ASN1Free_Q2931Address(Q2931Address *val);
|
|
static void ASN1CALL ASN1Free_H222LogicalChannelParameters(H222LogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_EscrowData(EscrowData *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySend(MultiplexEntrySend *val);
|
|
static void ASN1CALL ASN1Free_MultiplexElement(MultiplexElement *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendAck(MultiplexEntrySendAck *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendRelease(MultiplexEntrySendRelease *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntry(RequestMultiplexEntry *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryAck(RequestMultiplexEntryAck *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryRelease(RequestMultiplexEntryRelease *val);
|
|
static void ASN1CALL ASN1Free_RequestMode(RequestMode *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeCommand(CommunicationModeCommand *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeResponse(CommunicationModeResponse *val);
|
|
static void ASN1CALL ASN1Free_Criteria(Criteria *val);
|
|
static void ASN1CALL ASN1Free_RequestAllTerminalIDsResponse(RequestAllTerminalIDsResponse *val);
|
|
static void ASN1CALL ASN1Free_TerminalInformation(TerminalInformation *val);
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet(SendTerminalCapabilitySet *val);
|
|
static void ASN1CALL ASN1Free_SubstituteConferenceIDCommand(SubstituteConferenceIDCommand *val);
|
|
static void ASN1CALL ASN1Free_FunctionNotSupported(FunctionNotSupported *val);
|
|
static void ASN1CALL ASN1Free_VendorIdentification(VendorIdentification *val);
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val);
|
|
static void ASN1CALL ASN1Free_MultiplexElement_type_subElementList(PMultiplexElement_type_subElementList *val);
|
|
static void ASN1CALL ASN1Free_RequestAllTerminalIDsResponse_terminalInformation(PRequestAllTerminalIDsResponse_terminalInformation *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalCertificateResponse(ConferenceResponse_terminalCertificateResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_chairTokenOwnerResponse(ConferenceResponse_chairTokenOwnerResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalListResponse(ConferenceResponse_terminalListResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_passwordResponse(ConferenceResponse_passwordResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_conferenceIDResponse(ConferenceResponse_conferenceIDResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalIDResponse(ConferenceResponse_terminalIDResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_mCTerminalIDResponse(ConferenceResponse_mCTerminalIDResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceRequest_requestTerminalCertificate(ConferenceRequest_requestTerminalCertificate *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject_rejectionDescriptions(RequestMultiplexEntryReject_rejectionDescriptions *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendReject_rejectionDescriptions(MultiplexEntrySendReject_rejectionDescriptions *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntryDescriptor_elementList(MultiplexEntryDescriptor_elementList *val);
|
|
static void ASN1CALL ASN1Free_EncryptionSync_escrowentry(PEncryptionSync_escrowentry *val);
|
|
static void ASN1CALL ASN1Free_H263VideoModeCombos_h263VideoCoupledModes(H263VideoModeCombos_h263VideoCoupledModes *val);
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureFormat(PH263Options_customPictureFormat *val);
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureClockFrequency(PH263Options_customPictureClockFrequency *val);
|
|
static void ASN1CALL ASN1Free_MultipointCapability_mediaDistributionCapability(PMultipointCapability_mediaDistributionCapability *val);
|
|
static void ASN1CALL ASN1Free_TransportCapability_mediaChannelCapabilities(TransportCapability_mediaChannelCapabilities *val);
|
|
static void ASN1CALL ASN1Free_H222Capability_vcCapability(PH222Capability_vcCapability *val);
|
|
static void ASN1CALL ASN1Free_CapabilityDescriptor_simultaneousCapabilities(PCapabilityDescriptor_simultaneousCapabilities *val);
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet_capabilityDescriptors(TerminalCapabilitySet_capabilityDescriptors *val);
|
|
static void ASN1CALL ASN1Free_NonStandardParameter(NonStandardParameter *val);
|
|
static void ASN1CALL ASN1Free_QOSCapability(QOSCapability *val);
|
|
static void ASN1CALL ASN1Free_TransportCapability(TransportCapability *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMethod(RedundancyEncodingMethod *val);
|
|
static void ASN1CALL ASN1Free_H263Options(H263Options *val);
|
|
static void ASN1CALL ASN1Free_H263VideoModeCombos(H263VideoModeCombos *val);
|
|
static void ASN1CALL ASN1Free_AudioCapability(AudioCapability *val);
|
|
static void ASN1CALL ASN1Free_MediaEncryptionAlgorithm(MediaEncryptionAlgorithm *val);
|
|
static void ASN1CALL ASN1Free_AuthenticationCapability(AuthenticationCapability *val);
|
|
static void ASN1CALL ASN1Free_IntegrityCapability(IntegrityCapability *val);
|
|
static void ASN1CALL ASN1Free_UnicastAddress(UnicastAddress *val);
|
|
static void ASN1CALL ASN1Free_MulticastAddress(MulticastAddress *val);
|
|
static void ASN1CALL ASN1Free_EncryptionSync(EncryptionSync *val);
|
|
static void ASN1CALL ASN1Free_RequestChannelClose(RequestChannelClose *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntryDescriptor(MultiplexEntryDescriptor *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendReject(MultiplexEntrySendReject *val);
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject(RequestMultiplexEntryReject *val);
|
|
static void ASN1CALL ASN1Free_H263VideoMode(H263VideoMode *val);
|
|
static void ASN1CALL ASN1Free_AudioMode(AudioMode *val);
|
|
static void ASN1CALL ASN1Free_EncryptionMode(EncryptionMode *val);
|
|
static void ASN1CALL ASN1Free_ConferenceRequest(ConferenceRequest *val);
|
|
static void ASN1CALL ASN1Free_CertSelectionCriteria(PCertSelectionCriteria *val);
|
|
static void ASN1CALL ASN1Free_ConferenceResponse(ConferenceResponse *val);
|
|
static void ASN1CALL ASN1Free_EndSessionCommand(EndSessionCommand *val);
|
|
static void ASN1CALL ASN1Free_ConferenceCommand(ConferenceCommand *val);
|
|
static void ASN1CALL ASN1Free_UserInputIndication_userInputSupportIndication(UserInputIndication_userInputSupportIndication *val);
|
|
static void ASN1CALL ASN1Free_MiscellaneousIndication_type(MiscellaneousIndication_type *val);
|
|
static void ASN1CALL ASN1Free_MiscellaneousCommand_type(MiscellaneousCommand_type *val);
|
|
static void ASN1CALL ASN1Free_EncryptionCommand_encryptionAlgorithmID(EncryptionCommand_encryptionAlgorithmID *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry_nonStandard(PCommunicationModeTableEntry_nonStandard *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMode_secondaryEncoding(RedundancyEncodingMode_secondaryEncoding *val);
|
|
static void ASN1CALL ASN1Free_H223ModeParameters_adaptationLayerType(H223ModeParameters_adaptationLayerType *val);
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySend_multiplexEntryDescriptors(PMultiplexEntrySend_multiplexEntryDescriptors *val);
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelAckParameters_nonStandard(PH2250LogicalChannelAckParameters_nonStandard *val);
|
|
static void ASN1CALL ASN1Free_RTPPayloadType_payloadDescriptor(RTPPayloadType_payloadDescriptor *val);
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters_nonStandard(PH2250LogicalChannelParameters_nonStandard *val);
|
|
static void ASN1CALL ASN1Free_H223LogicalChannelParameters_adaptationLayerType(H223LogicalChannelParameters_adaptationLayerType *val);
|
|
static void ASN1CALL ASN1Free_ConferenceCapability_nonStandardData(PConferenceCapability_nonStandardData *val);
|
|
static void ASN1CALL ASN1Free_UserInputCapability_nonStandard(UserInputCapability_nonStandard *val);
|
|
static void ASN1CALL ASN1Free_H263Options_modeCombos(PH263Options_modeCombos *val);
|
|
static void ASN1CALL ASN1Free_TransportCapability_qOSCapabilities(PTransportCapability_qOSCapabilities *val);
|
|
static void ASN1CALL ASN1Free_NonStandardMessage(NonStandardMessage *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingCapability(RedundancyEncodingCapability *val);
|
|
static void ASN1CALL ASN1Free_H263VideoCapability(H263VideoCapability *val);
|
|
static void ASN1CALL ASN1Free_EnhancementOptions(EnhancementOptions *val);
|
|
static void ASN1CALL ASN1Free_DataProtocolCapability(DataProtocolCapability *val);
|
|
static void ASN1CALL ASN1Free_EncryptionAuthenticationAndIntegrity(EncryptionAuthenticationAndIntegrity *val);
|
|
static void ASN1CALL ASN1Free_EncryptionCapability(PEncryptionCapability *val);
|
|
static void ASN1CALL ASN1Free_UserInputCapability(UserInputCapability *val);
|
|
static void ASN1CALL ASN1Free_H223LogicalChannelParameters(H223LogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_RTPPayloadType(RTPPayloadType *val);
|
|
static void ASN1CALL ASN1Free_H245TransportAddress(H245TransportAddress *val);
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelAckParameters(H2250LogicalChannelAckParameters *val);
|
|
static void ASN1CALL ASN1Free_H223ModeParameters(H223ModeParameters *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMode(RedundancyEncodingMode *val);
|
|
static void ASN1CALL ASN1Free_VideoMode(VideoMode *val);
|
|
static void ASN1CALL ASN1Free_EncryptionCommand(EncryptionCommand *val);
|
|
static void ASN1CALL ASN1Free_MiscellaneousCommand(MiscellaneousCommand *val);
|
|
static void ASN1CALL ASN1Free_MiscellaneousIndication(MiscellaneousIndication *val);
|
|
static void ASN1CALL ASN1Free_MCLocationIndication(MCLocationIndication *val);
|
|
static void ASN1CALL ASN1Free_UserInputIndication(UserInputIndication *val);
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application_nlpid(DataApplicationCapability_application_nlpid *val);
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application_t84(DataApplicationCapability_application_t84 *val);
|
|
static void ASN1CALL ASN1Free_DataMode_application_nlpid(DataMode_application_nlpid *val);
|
|
static void ASN1CALL ASN1Free_DataMode_application(DataMode_application *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_forwardMultiplexAckParameters(OpenLogicalChannelAck_forwardMultiplexAckParameters *val);
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters_mediaPacketization(H2250LogicalChannelParameters_mediaPacketization *val);
|
|
static void ASN1CALL ASN1Free_NetworkAccessParameters_networkAddress(NetworkAccessParameters_networkAddress *val);
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application(DataApplicationCapability_application *val);
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_spatialEnhancement(PEnhancementLayerInfo_spatialEnhancement *val);
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_snrEnhancement(PEnhancementLayerInfo_snrEnhancement *val);
|
|
static void ASN1CALL ASN1Free_MediaPacketizationCapability_rtpPayloadType(MediaPacketizationCapability_rtpPayloadType *val);
|
|
static void ASN1CALL ASN1Free_H2250Capability_redundancyEncodingCapability(PH2250Capability_redundancyEncodingCapability *val);
|
|
static void ASN1CALL ASN1Free_CommandMessage(CommandMessage *val);
|
|
static void ASN1CALL ASN1Free_H235SecurityCapability(H235SecurityCapability *val);
|
|
static void ASN1CALL ASN1Free_MediaPacketizationCapability(MediaPacketizationCapability *val);
|
|
static void ASN1CALL ASN1Free_VideoCapability(VideoCapability *val);
|
|
static void ASN1CALL ASN1Free_BEnhancementParameters(BEnhancementParameters *val);
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability(DataApplicationCapability *val);
|
|
static void ASN1CALL ASN1Free_NetworkAccessParameters(NetworkAccessParameters *val);
|
|
static void ASN1CALL ASN1Free_H2250ModeParameters(H2250ModeParameters *val);
|
|
static void ASN1CALL ASN1Free_DataMode(DataMode *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry_dataType(CommunicationModeTableEntry_dataType *val);
|
|
static void ASN1CALL ASN1Free_H235Mode_mediaMode(H235Mode_mediaMode *val);
|
|
static void ASN1CALL ASN1Free_H235Media_mediaType(H235Media_mediaType *val);
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_bPictureEnhancement(PEnhancementLayerInfo_bPictureEnhancement *val);
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_distributedData(PMediaDistributionCapability_distributedData *val);
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_centralizedData(PMediaDistributionCapability_centralizedData *val);
|
|
static void ASN1CALL ASN1Free_Capability(Capability *val);
|
|
static void ASN1CALL ASN1Free_H2250Capability(H2250Capability *val);
|
|
static void ASN1CALL ASN1Free_H235Media(H235Media *val);
|
|
static void ASN1CALL ASN1Free_H235Mode(H235Mode *val);
|
|
static void ASN1CALL ASN1Free_ModeElement_type(ModeElement_type *val);
|
|
static void ASN1CALL ASN1Free_CapabilityTableEntry(CapabilityTableEntry *val);
|
|
static void ASN1CALL ASN1Free_MultiplexCapability(MultiplexCapability *val);
|
|
static void ASN1CALL ASN1Free_DataType(DataType *val);
|
|
static void ASN1CALL ASN1Free_RedundancyEncoding(RedundancyEncoding *val);
|
|
static void ASN1CALL ASN1Free_ModeElement(ModeElement *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry(CommunicationModeTableEntry *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeResponse_communicationModeTable(PCommunicationModeResponse_communicationModeTable *val);
|
|
static void ASN1CALL ASN1Free_CommunicationModeCommand_communicationModeTable(PCommunicationModeCommand_communicationModeTable *val);
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet_capabilityTable(PTerminalCapabilitySet_capabilityTable *val);
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet(TerminalCapabilitySet *val);
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters(H2250LogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_ModeDescription(ModeDescription *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val);
|
|
static void ASN1CALL ASN1Free_RequestMode_requestedModes(PRequestMode_requestedModes *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters(OpenLogicalChannelAck_reverseLogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters(OpenLogicalChannel_reverseLogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters(OpenLogicalChannel_forwardLogicalChannelParameters *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel(OpenLogicalChannel *val);
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck(OpenLogicalChannelAck *val);
|
|
static void ASN1CALL ASN1Free_RequestMessage(RequestMessage *val);
|
|
static void ASN1CALL ASN1Free_ResponseMessage(ResponseMessage *val);
|
|
static void ASN1CALL ASN1Free_FastConnectOLC(FastConnectOLC *val);
|
|
static void ASN1CALL ASN1Free_FunctionNotUnderstood(FunctionNotUnderstood *val);
|
|
static void ASN1CALL ASN1Free_IndicationMessage(IndicationMessage *val);
|
|
static void ASN1CALL ASN1Free_MultimediaSystemControlMessage(MultimediaSystemControlMessage *val);
|
|
|
|
typedef ASN1PerEncFun_t ASN1EncFun_t;
|
|
static const ASN1EncFun_t encfntab[2] = {
|
|
(ASN1EncFun_t) ASN1Enc_FastConnectOLC,
|
|
(ASN1EncFun_t) ASN1Enc_MultimediaSystemControlMessage,
|
|
};
|
|
typedef ASN1PerDecFun_t ASN1DecFun_t;
|
|
static const ASN1DecFun_t decfntab[2] = {
|
|
(ASN1DecFun_t) ASN1Dec_FastConnectOLC,
|
|
(ASN1DecFun_t) ASN1Dec_MultimediaSystemControlMessage,
|
|
};
|
|
static const ASN1FreeFun_t freefntab[2] = {
|
|
(ASN1FreeFun_t) ASN1Free_FastConnectOLC,
|
|
(ASN1FreeFun_t) ASN1Free_MultimediaSystemControlMessage,
|
|
};
|
|
static const ULONG sizetab[2] = {
|
|
SIZE_H245ASN_Module_PDU_0,
|
|
SIZE_H245ASN_Module_PDU_1,
|
|
};
|
|
|
|
/* forward declarations of values: */
|
|
/* definitions of value components: */
|
|
/* definitions of values: */
|
|
|
|
void ASN1CALL H245ASN_Module_Startup(void)
|
|
{
|
|
H245ASN_Module = ASN1_CreateModule(0x10000, ASN1_PER_RULE_ALIGNED, ASN1FLAGS_NONE, 2, (const ASN1GenericFun_t *) encfntab, (const ASN1GenericFun_t *) decfntab, freefntab, sizetab, 0x35343268);
|
|
}
|
|
|
|
void ASN1CALL H245ASN_Module_Cleanup(void)
|
|
{
|
|
ASN1_CloseModule(H245ASN_Module);
|
|
H245ASN_Module = NULL;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1_errorCorrection(ASN1encoding_t enc, NewATMVCIndication_aal_aal1_errorCorrection *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1_errorCorrection(ASN1decoding_t dec, NewATMVCIndication_aal_aal1_errorCorrection *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1_clockRecovery(ASN1encoding_t enc, NewATMVCIndication_aal_aal1_clockRecovery *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1_clockRecovery(ASN1decoding_t dec, NewATMVCIndication_aal_aal1_clockRecovery *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(ASN1encoding_t enc, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(ASN1decoding_t dec, MiscellaneousCommand_type_progressiveRefinementStart_repeatCount *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode_eRM_recovery(ASN1encoding_t enc, V76LogicalChannelParameters_mode_eRM_recovery *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode_eRM_recovery(ASN1decoding_t dec, V76LogicalChannelParameters_mode_eRM_recovery *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_extendedPAR_Set *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->width - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->height - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_extendedPAR_Set *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->width))
|
|
return 0;
|
|
(val)->width += 1;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->height))
|
|
return 0;
|
|
(val)->height += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI_customPCF_Set(ASN1encoding_t enc, CustomPictureFormat_mPI_customPCF_Set *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->clockConversionCode - 1000))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 7, (val)->clockDivisor - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->customMPI - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI_customPCF_Set(ASN1decoding_t dec, CustomPictureFormat_mPI_customPCF_Set *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 1, &(val)->clockConversionCode))
|
|
return 0;
|
|
(val)->clockConversionCode += 1000;
|
|
if (!ASN1PERDecU16Val(dec, 7, &(val)->clockDivisor))
|
|
return 0;
|
|
(val)->clockDivisor += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->customMPI))
|
|
return 0;
|
|
(val)->customMPI += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates_type_rangeOfBitRates(ASN1encoding_t enc, VCCapability_availableBitRates_type_rangeOfBitRates *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->lowerBitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->higherBitRate - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates_type_rangeOfBitRates(ASN1decoding_t dec, VCCapability_availableBitRates_type_rangeOfBitRates *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->lowerBitRate))
|
|
return 0;
|
|
(val)->lowerBitRate += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->higherBitRate))
|
|
return 0;
|
|
(val)->higherBitRate += 1;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(ASN1encoding_t enc, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.highestEntryNumberProcessed - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(ASN1decoding_t dec, TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.highestEntryNumberProcessed))
|
|
return 0;
|
|
(val)->u.highestEntryNumberProcessed += 1;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates_type(ASN1encoding_t enc, VCCapability_availableBitRates_type *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.singleBitRate - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_VCCapability_availableBitRates_type_rangeOfBitRates(enc, &(val)->u.rangeOfBitRates))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates_type(ASN1decoding_t dec, VCCapability_availableBitRates_type *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.singleBitRate))
|
|
return 0;
|
|
(val)->u.singleBitRate += 1;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_VCCapability_availableBitRates_type_rangeOfBitRates(dec, &(val)->u.rangeOfBitRates))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223Capability_h223MultiplexTableCapability_enhanced(ASN1encoding_t enc, H223Capability_h223MultiplexTableCapability_enhanced *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->maximumNestingDepth - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maximumElementListSize - 2))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maximumSubElementListSize - 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223Capability_h223MultiplexTableCapability_enhanced(ASN1decoding_t dec, H223Capability_h223MultiplexTableCapability_enhanced *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->maximumNestingDepth))
|
|
return 0;
|
|
(val)->maximumNestingDepth += 1;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maximumElementListSize))
|
|
return 0;
|
|
(val)->maximumElementListSize += 2;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maximumSubElementListSize))
|
|
return 0;
|
|
(val)->maximumSubElementListSize += 2;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI_customPCF(ASN1encoding_t enc, CustomPictureFormat_mPI_customPCF *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_CustomPictureFormat_mPI_customPCF_Set(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI_customPCF(ASN1decoding_t dec, CustomPictureFormat_mPI_customPCF *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_CustomPictureFormat_mPI_customPCF_Set(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_mPI_customPCF(CustomPictureFormat_mPI_customPCF *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_extendedPAR *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_extendedPAR *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR_Set(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation_extendedPAR(CustomPictureFormat_pixelAspectInformation_extendedPAR *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(CustomPictureFormat_pixelAspectInformation_pixelAspectCode *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters_adaptationLayerType_al3(ASN1encoding_t enc, H223LogicalChannelParameters_adaptationLayerType_al3 *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->controlFieldOctets))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->sendBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->sendBufferSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters_adaptationLayerType_al3(ASN1decoding_t dec, H223LogicalChannelParameters_adaptationLayerType_al3 *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecU16Val(dec, 2, &(val)->controlFieldOctets))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->sendBufferSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode_eRM(ASN1encoding_t enc, V76LogicalChannelParameters_mode_eRM *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 7, (val)->windowSize - 1))
|
|
return 0;
|
|
if (!ASN1Enc_V76LogicalChannelParameters_mode_eRM_recovery(enc, &(val)->recovery))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode_eRM(ASN1decoding_t dec, V76LogicalChannelParameters_mode_eRM *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 7, &(val)->windowSize))
|
|
return 0;
|
|
(val)->windowSize += 1;
|
|
if (!ASN1Dec_V76LogicalChannelParameters_mode_eRM_recovery(dec, &(val)->recovery))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress_route(ASN1encoding_t enc, PUnicastAddress_iPSourceRouteAddress_route *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnicastAddress_iPSourceRouteAddress_route_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress_route_ElmFn(ASN1encoding_t enc, PUnicastAddress_iPSourceRouteAddress_route val)
|
|
{
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &val->value, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress_route(ASN1decoding_t dec, PUnicastAddress_iPSourceRouteAddress_route *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnicastAddress_iPSourceRouteAddress_route_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress_route_ElmFn(ASN1decoding_t dec, PUnicastAddress_iPSourceRouteAddress_route val)
|
|
{
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &val->value, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPSourceRouteAddress_route(PUnicastAddress_iPSourceRouteAddress_route *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnicastAddress_iPSourceRouteAddress_route_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPSourceRouteAddress_route_ElmFn(PUnicastAddress_iPSourceRouteAddress_route val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress_routing(ASN1encoding_t enc, UnicastAddress_iPSourceRouteAddress_routing *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress_routing(ASN1decoding_t dec, UnicastAddress_iPSourceRouteAddress_routing *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters_adaptationLayerType_al3(ASN1encoding_t enc, H223ModeParameters_adaptationLayerType_al3 *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->controlFieldOctets))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->sendBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->sendBufferSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters_adaptationLayerType_al3(ASN1decoding_t dec, H223ModeParameters_adaptationLayerType_al3 *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecU16Val(dec, 2, &(val)->controlFieldOctets))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->sendBufferSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(ASN1encoding_t enc, SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(ASN1decoding_t dec, SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(ASN1encoding_t enc, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn, 1, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn(ASN1encoding_t enc, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(ASN1decoding_t dec, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn, sizeof(**val), 1, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn(ASN1decoding_t dec, PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers_ElmFn(PSendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart(ASN1encoding_t enc, MiscellaneousCommand_type_progressiveRefinementStart *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(enc, &(val)->repeatCount))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart(ASN1decoding_t dec, MiscellaneousCommand_type_progressiveRefinementStart *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(dec, &(val)->repeatCount))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_videoFastUpdateMB(ASN1encoding_t enc, MiscellaneousCommand_type_videoFastUpdateMB *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->firstGOB))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->firstMB - 1))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->numberOfMBs - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_videoFastUpdateMB(ASN1decoding_t dec, MiscellaneousCommand_type_videoFastUpdateMB *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->firstGOB))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->firstMB))
|
|
return 0;
|
|
(val)->firstMB += 1;
|
|
}
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->numberOfMBs))
|
|
return 0;
|
|
(val)->numberOfMBs += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type_videoFastUpdateGOB(ASN1encoding_t enc, MiscellaneousCommand_type_videoFastUpdateGOB *val)
|
|
{
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->firstGOB))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->numberOfGOBs - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type_videoFastUpdateGOB(ASN1decoding_t dec, MiscellaneousCommand_type_videoFastUpdateGOB *val)
|
|
{
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->firstGOB))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->numberOfGOBs))
|
|
return 0;
|
|
(val)->numberOfGOBs += 1;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication_type_videoNotDecodedMBs(ASN1encoding_t enc, MiscellaneousIndication_type_videoNotDecodedMBs *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->firstMB - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->numberOfMBs - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->temporalReference))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication_type_videoNotDecodedMBs(ASN1decoding_t dec, MiscellaneousIndication_type_videoNotDecodedMBs *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->firstMB))
|
|
return 0;
|
|
(val)->firstMB += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->numberOfMBs))
|
|
return 0;
|
|
(val)->numberOfMBs += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->temporalReference))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal5(ASN1encoding_t enc, NewATMVCIndication_aal_aal5 *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardMaximumSDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->backwardMaximumSDUSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal5(ASN1decoding_t dec, NewATMVCIndication_aal_aal5 *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardMaximumSDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->backwardMaximumSDUSize))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal_aal1(ASN1encoding_t enc, NewATMVCIndication_aal_aal1 *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_NewATMVCIndication_aal_aal1_clockRecovery(enc, &(val)->clockRecovery))
|
|
return 0;
|
|
if (!ASN1Enc_NewATMVCIndication_aal_aal1_errorCorrection(enc, &(val)->errorCorrection))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->structuredDataTransfer))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->partiallyFilledCells))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal_aal1(ASN1decoding_t dec, NewATMVCIndication_aal_aal1 *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_aal_aal1_clockRecovery(dec, &(val)->clockRecovery))
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_aal_aal1_errorCorrection(dec, &(val)->errorCorrection))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->structuredDataTransfer))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->partiallyFilledCells))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_reverseParameters_multiplex(ASN1encoding_t enc, NewATMVCIndication_reverseParameters_multiplex *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_reverseParameters_multiplex(ASN1decoding_t dec, NewATMVCIndication_reverseParameters_multiplex *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signal_rtp(ASN1encoding_t enc, UserInputIndication_signal_rtp *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
l = ASN1uint32_uoctets((val)->timestamp);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->timestamp))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->expirationTime);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->expirationTime))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signal_rtp(ASN1decoding_t dec, UserInputIndication_signal_rtp *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timestamp))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->expirationTime))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber))
|
|
return 0;
|
|
(val)->logicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signalUpdate_rtp(ASN1encoding_t enc, UserInputIndication_signalUpdate_rtp *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signalUpdate_rtp(ASN1decoding_t dec, UserInputIndication_signalUpdate_rtp *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber))
|
|
return 0;
|
|
(val)->logicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signalUpdate(ASN1encoding_t enc, UserInputIndication_signalUpdate *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->duration - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_UserInputIndication_signalUpdate_rtp(enc, &(val)->rtp))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signalUpdate(ASN1decoding_t dec, UserInputIndication_signalUpdate *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->duration))
|
|
return 0;
|
|
(val)->duration += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_UserInputIndication_signalUpdate_rtp(dec, &(val)->rtp))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_signal(ASN1encoding_t enc, UserInputIndication_signal *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
t = lstrlenA((val)->signalType);
|
|
if (!ASN1PEREncCharString(enc, t, (val)->signalType, 8))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->duration - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_UserInputIndication_signal_rtp(enc, &(val)->rtp))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_signal(ASN1decoding_t dec, UserInputIndication_signal *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecZeroCharStringNoAlloc(dec, 1, (val)->signalType, 8))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->duration))
|
|
return 0;
|
|
(val)->duration += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_UserInputIndication_signal_rtp(dec, &(val)->rtp))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserInputIndication_signal(UserInputIndication_signal *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_reverseParameters(ASN1encoding_t enc, NewATMVCIndication_reverseParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->bitRateLockedToPCRClock))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->bitRateLockedToNetworkClock))
|
|
return 0;
|
|
if (!ASN1Enc_NewATMVCIndication_reverseParameters_multiplex(enc, &(val)->multiplex))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_reverseParameters(ASN1decoding_t dec, NewATMVCIndication_reverseParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->bitRateLockedToPCRClock))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->bitRateLockedToNetworkClock))
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_reverseParameters_multiplex(dec, &(val)->multiplex))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_multiplex(ASN1encoding_t enc, NewATMVCIndication_multiplex *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_multiplex(ASN1decoding_t dec, NewATMVCIndication_multiplex *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication_aal(ASN1encoding_t enc, NewATMVCIndication_aal *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NewATMVCIndication_aal_aal1(enc, &(val)->u.aal1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_NewATMVCIndication_aal_aal5(enc, &(val)->u.aal5))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication_aal(ASN1decoding_t dec, NewATMVCIndication_aal *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NewATMVCIndication_aal_aal1(dec, &(val)->u.aal1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_NewATMVCIndication_aal_aal5(dec, &(val)->u.aal5))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_JitterIndication_scope(ASN1encoding_t enc, JitterIndication_scope *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelNumber - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.resourceID))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_JitterIndication_scope(ASN1decoding_t dec, JitterIndication_scope *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelNumber))
|
|
return 0;
|
|
(val)->u.logicalChannelNumber += 1;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.resourceID))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupported_cause(ASN1encoding_t enc, FunctionNotSupported_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupported_cause(ASN1decoding_t dec, FunctionNotSupported_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration_h223AnnexADoubleFlag(ASN1encoding_t enc, H223MultiplexReconfiguration_h223AnnexADoubleFlag *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration_h223AnnexADoubleFlag(ASN1decoding_t dec, H223MultiplexReconfiguration_h223AnnexADoubleFlag *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration_h223ModeChange(ASN1encoding_t enc, H223MultiplexReconfiguration_h223ModeChange *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration_h223ModeChange(ASN1decoding_t dec, H223MultiplexReconfiguration_h223ModeChange *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand_isdnOptions(ASN1encoding_t enc, EndSessionCommand_isdnOptions *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand_isdnOptions(ASN1decoding_t dec, EndSessionCommand_isdnOptions *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand_gstnOptions(ASN1encoding_t enc, EndSessionCommand_gstnOptions *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand_gstnOptions(ASN1decoding_t dec, EndSessionCommand_gstnOptions *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand_restriction(ASN1encoding_t enc, FlowControlCommand_restriction *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
l = ASN1uint32_uoctets((val)->u.maximumBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->u.maximumBitRate))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand_restriction(ASN1decoding_t dec, FlowControlCommand_restriction *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->u.maximumBitRate))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand_scope(ASN1encoding_t enc, FlowControlCommand_scope *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelNumber - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.resourceID))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand_scope(ASN1decoding_t dec, FlowControlCommand_scope *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelNumber))
|
|
return 0;
|
|
(val)->u.logicalChannelNumber += 1;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.resourceID))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet_specificRequest(ASN1encoding_t enc, SendTerminalCapabilitySet_specificRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multiplexCapability))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(enc, &(val)->capabilityTableEntryNumbers))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(enc, &(val)->capabilityDescriptorNumbers))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet_specificRequest(ASN1decoding_t dec, SendTerminalCapabilitySet_specificRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multiplexCapability))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(dec, &(val)->capabilityTableEntryNumbers))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(dec, &(val)->capabilityDescriptorNumbers))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet_specificRequest(SendTerminalCapabilitySet_specificRequest *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityTableEntryNumbers(&(val)->capabilityTableEntryNumbers);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SendTerminalCapabilitySet_specificRequest_capabilityDescriptorNumbers(&(val)->capabilityDescriptorNumbers);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RemoteMCResponse_reject(ASN1encoding_t enc, RemoteMCResponse_reject *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RemoteMCResponse_reject(ASN1decoding_t dec, RemoteMCResponse_reject *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_sendThisSourceResponse(ASN1encoding_t enc, ConferenceResponse_sendThisSourceResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_sendThisSourceResponse(ASN1decoding_t dec, ConferenceResponse_sendThisSourceResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_makeTerminalBroadcasterResponse(ASN1encoding_t enc, ConferenceResponse_makeTerminalBroadcasterResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_makeTerminalBroadcasterResponse(ASN1decoding_t dec, ConferenceResponse_makeTerminalBroadcasterResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_broadcastMyLogicalChannelResponse(ASN1encoding_t enc, ConferenceResponse_broadcastMyLogicalChannelResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_broadcastMyLogicalChannelResponse(ASN1decoding_t dec, ConferenceResponse_broadcastMyLogicalChannelResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_extensionAddressResponse(ASN1encoding_t enc, ConferenceResponse_extensionAddressResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->extensionAddress, 1, 128, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_extensionAddressResponse(ASN1decoding_t dec, ConferenceResponse_extensionAddressResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->extensionAddress, 1, 128, 7))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_extensionAddressResponse(ConferenceResponse_extensionAddressResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_makeMeChairResponse(ASN1encoding_t enc, ConferenceResponse_makeMeChairResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_makeMeChairResponse(ASN1decoding_t dec, ConferenceResponse_makeMeChairResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject_cause(ASN1encoding_t enc, MaintenanceLoopReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject_cause(ASN1decoding_t dec, MaintenanceLoopReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject_type(ASN1encoding_t enc, MaintenanceLoopReject_type *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.mediaLoop - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelLoop - 1))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject_type(ASN1decoding_t dec, MaintenanceLoopReject_type *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.mediaLoop))
|
|
return 0;
|
|
(val)->u.mediaLoop += 1;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelLoop))
|
|
return 0;
|
|
(val)->u.logicalChannelLoop += 1;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopAck_type(ASN1encoding_t enc, MaintenanceLoopAck_type *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.mediaLoop - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelLoop - 1))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopAck_type(ASN1decoding_t dec, MaintenanceLoopAck_type *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.mediaLoop))
|
|
return 0;
|
|
(val)->u.mediaLoop += 1;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelLoop))
|
|
return 0;
|
|
(val)->u.logicalChannelLoop += 1;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopRequest_type(ASN1encoding_t enc, MaintenanceLoopRequest_type *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.mediaLoop - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelLoop - 1))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopRequest_type(ASN1decoding_t dec, MaintenanceLoopRequest_type *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.mediaLoop))
|
|
return 0;
|
|
(val)->u.mediaLoop += 1;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelLoop))
|
|
return 0;
|
|
(val)->u.logicalChannelLoop += 1;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCMode_g723AnnexCAudioMode(ASN1encoding_t enc, G7231AnnexCMode_g723AnnexCAudioMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->highRateMode0 - 27))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->highRateMode1 - 27))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->lowRateMode0 - 23))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->lowRateMode1 - 23))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->sidMode0 - 6))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->sidMode1 - 6))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCMode_g723AnnexCAudioMode(ASN1decoding_t dec, G7231AnnexCMode_g723AnnexCAudioMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->highRateMode0))
|
|
return 0;
|
|
(val)->highRateMode0 += 27;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->highRateMode1))
|
|
return 0;
|
|
(val)->highRateMode1 += 27;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->lowRateMode0))
|
|
return 0;
|
|
(val)->lowRateMode0 += 23;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->lowRateMode1))
|
|
return 0;
|
|
(val)->lowRateMode1 += 23;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->sidMode0))
|
|
return 0;
|
|
(val)->sidMode0 += 6;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->sidMode1))
|
|
return 0;
|
|
(val)->sidMode1 += 6;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_multichannelType(ASN1encoding_t enc, IS13818AudioMode_multichannelType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_multichannelType(ASN1decoding_t dec, IS13818AudioMode_multichannelType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_audioSampling(ASN1encoding_t enc, IS13818AudioMode_audioSampling *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_audioSampling(ASN1decoding_t dec, IS13818AudioMode_audioSampling *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode_audioLayer(ASN1encoding_t enc, IS13818AudioMode_audioLayer *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode_audioLayer(ASN1decoding_t dec, IS13818AudioMode_audioLayer *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_multichannelType(ASN1encoding_t enc, IS11172AudioMode_multichannelType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_multichannelType(ASN1decoding_t dec, IS11172AudioMode_multichannelType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_audioSampling(ASN1encoding_t enc, IS11172AudioMode_audioSampling *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_audioSampling(ASN1decoding_t dec, IS11172AudioMode_audioSampling *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode_audioLayer(ASN1encoding_t enc, IS11172AudioMode_audioLayer *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode_audioLayer(ASN1decoding_t dec, IS11172AudioMode_audioLayer *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AudioMode_g7231(ASN1encoding_t enc, AudioMode_g7231 *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AudioMode_g7231(ASN1decoding_t dec, AudioMode_g7231 *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263VideoMode_resolution(ASN1encoding_t enc, H263VideoMode_resolution *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263VideoMode_resolution(ASN1decoding_t dec, H263VideoMode_resolution *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H262VideoMode_profileAndLevel(ASN1encoding_t enc, H262VideoMode_profileAndLevel *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H262VideoMode_profileAndLevel(ASN1decoding_t dec, H262VideoMode_profileAndLevel *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 4))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H261VideoMode_resolution(ASN1encoding_t enc, H261VideoMode_resolution *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H261VideoMode_resolution(ASN1decoding_t dec, H261VideoMode_resolution *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestModeReject_cause(ASN1encoding_t enc, RequestModeReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestModeReject_cause(ASN1decoding_t dec, RequestModeReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestModeAck_response(ASN1encoding_t enc, RequestModeAck_response *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestModeAck_response(ASN1decoding_t dec, RequestModeAck_response *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRelease_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryRelease_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRelease_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryRelease_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryRelease_entryNumbers(RequestMultiplexEntryRelease_entryNumbers *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRejectionDescriptions_cause(ASN1encoding_t enc, RequestMultiplexEntryRejectionDescriptions_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRejectionDescriptions_cause(ASN1decoding_t dec, RequestMultiplexEntryRejectionDescriptions_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryReject_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryReject_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject_entryNumbers(RequestMultiplexEntryReject_entryNumbers *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryAck_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntryAck_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryAck_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntryAck_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryAck_entryNumbers(RequestMultiplexEntryAck_entryNumbers *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntry_entryNumbers(ASN1encoding_t enc, RequestMultiplexEntry_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntry_entryNumbers(ASN1decoding_t dec, RequestMultiplexEntry_entryNumbers *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntry_entryNumbers(RequestMultiplexEntry_entryNumbers *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendRelease_multiplexTableEntryNumber(ASN1encoding_t enc, MultiplexEntrySendRelease_multiplexTableEntryNumber *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendRelease_multiplexTableEntryNumber(ASN1decoding_t dec, MultiplexEntrySendRelease_multiplexTableEntryNumber *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendRelease_multiplexTableEntryNumber(MultiplexEntrySendRelease_multiplexTableEntryNumber *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryRejectionDescriptions_cause(ASN1encoding_t enc, MultiplexEntryRejectionDescriptions_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryRejectionDescriptions_cause(ASN1decoding_t dec, MultiplexEntryRejectionDescriptions_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendAck_multiplexTableEntryNumber(ASN1encoding_t enc, MultiplexEntrySendAck_multiplexTableEntryNumber *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendAck_multiplexTableEntryNumber(ASN1decoding_t dec, MultiplexEntrySendAck_multiplexTableEntryNumber *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendAck_multiplexTableEntryNumber(MultiplexEntrySendAck_multiplexTableEntryNumber *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_repeatCount(ASN1encoding_t enc, MultiplexElement_repeatCount *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.finite - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_repeatCount(ASN1decoding_t dec, MultiplexElement_repeatCount *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.finite))
|
|
return 0;
|
|
(val)->u.finite += 1;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_type(ASN1encoding_t enc, MultiplexElement_type *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.logicalChannelNumber))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MultiplexElement_type_subElementList(enc, &(val)->u.subElementList))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_type(ASN1decoding_t dec, MultiplexElement_type *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.logicalChannelNumber))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MultiplexElement_type_subElementList(dec, &(val)->u.subElementList))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexElement_type(MultiplexElement_type *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_MultiplexElement_type_subElementList(&(val)->u.subElementList);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseReject_cause(ASN1encoding_t enc, RequestChannelCloseReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseReject_cause(ASN1decoding_t dec, RequestChannelCloseReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelClose_reason(ASN1encoding_t enc, RequestChannelClose_reason *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelClose_reason(ASN1decoding_t dec, RequestChannelClose_reason *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel_reason(ASN1encoding_t enc, CloseLogicalChannel_reason *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel_reason(ASN1decoding_t dec, CloseLogicalChannel_reason *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel_source(ASN1encoding_t enc, CloseLogicalChannel_source *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel_source(ASN1decoding_t dec, CloseLogicalChannel_source *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelReject_cause(ASN1encoding_t enc, OpenLogicalChannelReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelReject_cause(ASN1decoding_t dec, OpenLogicalChannelReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MulticastAddress_iP6Address(ASN1encoding_t enc, MulticastAddress_iP6Address *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->network, 16))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->tsapIdentifier))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MulticastAddress_iP6Address(ASN1decoding_t dec, MulticastAddress_iP6Address *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->network, 16))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->tsapIdentifier))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MulticastAddress_iP6Address(MulticastAddress_iP6Address *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MulticastAddress_iPAddress(ASN1encoding_t enc, MulticastAddress_iPAddress *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->tsapIdentifier))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MulticastAddress_iPAddress(ASN1decoding_t dec, MulticastAddress_iPAddress *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->tsapIdentifier))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MulticastAddress_iPAddress(MulticastAddress_iPAddress *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPSourceRouteAddress(ASN1encoding_t enc, UnicastAddress_iPSourceRouteAddress *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_UnicastAddress_iPSourceRouteAddress_routing(enc, &(val)->routing))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->tsapIdentifier))
|
|
return 0;
|
|
if (!ASN1Enc_UnicastAddress_iPSourceRouteAddress_route(enc, &(val)->route))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPSourceRouteAddress(ASN1decoding_t dec, UnicastAddress_iPSourceRouteAddress *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_UnicastAddress_iPSourceRouteAddress_routing(dec, &(val)->routing))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->tsapIdentifier))
|
|
return 0;
|
|
if (!ASN1Dec_UnicastAddress_iPSourceRouteAddress_route(dec, &(val)->route))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPSourceRouteAddress(UnicastAddress_iPSourceRouteAddress *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_UnicastAddress_iPSourceRouteAddress_route(&(val)->route);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iP6Address(ASN1encoding_t enc, UnicastAddress_iP6Address *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->network, 16))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->tsapIdentifier))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iP6Address(ASN1decoding_t dec, UnicastAddress_iP6Address *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->network, 16))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->tsapIdentifier))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iP6Address(UnicastAddress_iP6Address *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPXAddress(ASN1encoding_t enc, UnicastAddress_iPXAddress *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->node, 6))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->netnum, 4))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->tsapIdentifier, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPXAddress(ASN1decoding_t dec, UnicastAddress_iPXAddress *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->node, 6))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->netnum, 4))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->tsapIdentifier, 2))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPXAddress(UnicastAddress_iPXAddress *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress_iPAddress(ASN1encoding_t enc, UnicastAddress_iPAddress *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->tsapIdentifier))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress_iPAddress(ASN1decoding_t dec, UnicastAddress_iPAddress *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->network, 4))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->tsapIdentifier))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress_iPAddress(UnicastAddress_iPAddress *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_mode(ASN1encoding_t enc, V76LogicalChannelParameters_mode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_V76LogicalChannelParameters_mode_eRM(enc, &(val)->u.eRM))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_mode(ASN1decoding_t dec, V76LogicalChannelParameters_mode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_V76LogicalChannelParameters_mode_eRM(dec, &(val)->u.eRM))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters_suspendResume(ASN1encoding_t enc, V76LogicalChannelParameters_suspendResume *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters_suspendResume(ASN1decoding_t dec, V76LogicalChannelParameters_suspendResume *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AnnexCArqParameters_numberOfRetransmissions(ASN1encoding_t enc, H223AnnexCArqParameters_numberOfRetransmissions *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->u.finite))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AnnexCArqParameters_numberOfRetransmissions(ASN1decoding_t dec, H223AnnexCArqParameters_numberOfRetransmissions *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->u.finite))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_crcLength(ASN1encoding_t enc, H223AL3MParameters_crcLength *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_crcLength(ASN1decoding_t dec, H223AL3MParameters_crcLength *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_headerFormat(ASN1encoding_t enc, H223AL3MParameters_headerFormat *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_headerFormat(ASN1decoding_t dec, H223AL3MParameters_headerFormat *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL2MParameters_headerFEC(ASN1encoding_t enc, H223AL2MParameters_headerFEC *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL2MParameters_headerFEC(ASN1decoding_t dec, H223AL2MParameters_headerFEC *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_crcLength(ASN1encoding_t enc, H223AL1MParameters_crcLength *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_crcLength(ASN1decoding_t dec, H223AL1MParameters_crcLength *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_headerFEC(ASN1encoding_t enc, H223AL1MParameters_headerFEC *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_headerFEC(ASN1decoding_t dec, H223AL1MParameters_headerFEC *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_transferMode(ASN1encoding_t enc, H223AL1MParameters_transferMode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_transferMode(ASN1decoding_t dec, H223AL1MParameters_transferMode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static ASN1stringtableentry_t Q2931Address_address_internationalNumber_StringTableEntries[] = {
|
|
{ 32, 32, 0 }, { 48, 57, 1 },
|
|
};
|
|
|
|
static ASN1stringtable_t Q2931Address_address_internationalNumber_StringTable = {
|
|
2, Q2931Address_address_internationalNumber_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_Q2931Address_address(ASN1encoding_t enc, Q2931Address_address *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
t = lstrlenA((val)->u.internationalNumber);
|
|
if (!ASN1PEREncBitVal(enc, 4, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->u.internationalNumber, 4, &Q2931Address_address_internationalNumber_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.nsapAddress, 1, 20, 5))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Q2931Address_address(ASN1decoding_t dec, Q2931Address_address *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU32Val(dec, 4, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.internationalNumber, 4, &Q2931Address_address_internationalNumber_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.nsapAddress, 1, 20, 5))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Q2931Address_address(Q2931Address_address *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_t120SetupProcedure(ASN1encoding_t enc, NetworkAccessParameters_t120SetupProcedure *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_t120SetupProcedure(ASN1decoding_t dec, NetworkAccessParameters_t120SetupProcedure *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_distribution(ASN1encoding_t enc, NetworkAccessParameters_distribution *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_distribution(ASN1decoding_t dec, NetworkAccessParameters_distribution *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_T84Profile_t84Restricted(ASN1encoding_t enc, T84Profile_t84Restricted *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->qcif))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->cif))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->ccir601Seq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->ccir601Prog))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->hdtvSeq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->hdtvProg))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->g3FacsMH200x100))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->g3FacsMH200x200))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->g4FacsMMR200x100))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->g4FacsMMR200x200))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->jbig200x200Seq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->jbig200x200Prog))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->jbig300x300Seq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->jbig300x300Prog))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digPhotoLow))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digPhotoMedSeq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digPhotoMedProg))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digPhotoHighSeq))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digPhotoHighProg))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_T84Profile_t84Restricted(ASN1decoding_t dec, T84Profile_t84Restricted *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->qcif))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->cif))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->ccir601Seq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->ccir601Prog))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->hdtvSeq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->hdtvProg))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->g3FacsMH200x100))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->g3FacsMH200x200))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->g4FacsMMR200x100))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->g4FacsMMR200x200))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->jbig200x200Seq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->jbig200x200Prog))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->jbig300x300Seq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->jbig300x300Prog))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digPhotoLow))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digPhotoMedSeq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digPhotoMedProg))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digPhotoHighSeq))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digPhotoHighProg))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCCapability_g723AnnexCAudioMode(ASN1encoding_t enc, G7231AnnexCCapability_g723AnnexCAudioMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->highRateMode0 - 27))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->highRateMode1 - 27))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->lowRateMode0 - 23))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->lowRateMode1 - 23))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->sidMode0 - 6))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->sidMode1 - 6))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCCapability_g723AnnexCAudioMode(ASN1decoding_t dec, G7231AnnexCCapability_g723AnnexCAudioMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->highRateMode0))
|
|
return 0;
|
|
(val)->highRateMode0 += 27;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->highRateMode1))
|
|
return 0;
|
|
(val)->highRateMode1 += 27;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->lowRateMode0))
|
|
return 0;
|
|
(val)->lowRateMode0 += 23;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->lowRateMode1))
|
|
return 0;
|
|
(val)->lowRateMode1 += 23;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->sidMode0))
|
|
return 0;
|
|
(val)->sidMode0 += 6;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->sidMode1))
|
|
return 0;
|
|
(val)->sidMode1 += 6;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AudioCapability_g7231(ASN1encoding_t enc, AudioCapability_g7231 *val)
|
|
{
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maxAl_sduAudioFrames - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->silenceSuppression))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AudioCapability_g7231(ASN1decoding_t dec, AudioCapability_g7231 *val)
|
|
{
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maxAl_sduAudioFrames))
|
|
return 0;
|
|
(val)->maxAl_sduAudioFrames += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->silenceSuppression))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_pixelAspectInformation(ASN1encoding_t enc, CustomPictureFormat_pixelAspectInformation *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncBoolean(enc, (val)->u.anyPixelAspectRatio))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(enc, &(val)->u.pixelAspectCode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_CustomPictureFormat_pixelAspectInformation_extendedPAR(enc, &(val)->u.extendedPAR))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_pixelAspectInformation(ASN1decoding_t dec, CustomPictureFormat_pixelAspectInformation *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecBoolean(dec, &(val)->u.anyPixelAspectRatio))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(dec, &(val)->u.pixelAspectCode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_CustomPictureFormat_pixelAspectInformation_extendedPAR(dec, &(val)->u.extendedPAR))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_pixelAspectInformation(CustomPictureFormat_pixelAspectInformation *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_CustomPictureFormat_pixelAspectInformation_pixelAspectCode(&(val)->u.pixelAspectCode);
|
|
break;
|
|
case 3:
|
|
ASN1Free_CustomPictureFormat_pixelAspectInformation_extendedPAR(&(val)->u.extendedPAR);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat_mPI(ASN1encoding_t enc, CustomPictureFormat_mPI *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->standardMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_CustomPictureFormat_mPI_customPCF(enc, &(val)->customPCF))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat_mPI(ASN1decoding_t dec, CustomPictureFormat_mPI *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->standardMPI))
|
|
return 0;
|
|
(val)->standardMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_CustomPictureFormat_mPI_customPCF(dec, &(val)->customPCF))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat_mPI(CustomPictureFormat_mPI *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_CustomPictureFormat_mPI_customPCF(&(val)->customPCF);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection_videoBackChannelSend(ASN1encoding_t enc, RefPictureSelection_videoBackChannelSend *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection_videoBackChannelSend(ASN1decoding_t dec, RefPictureSelection_videoBackChannelSend *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection_additionalPictureMemory(ASN1encoding_t enc, RefPictureSelection_additionalPictureMemory *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sqcifAdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->qcifAdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->cifAdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->cif4AdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->cif16AdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->bigCpfAdditionalPictureMemory - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection_additionalPictureMemory(ASN1decoding_t dec, RefPictureSelection_additionalPictureMemory *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sqcifAdditionalPictureMemory))
|
|
return 0;
|
|
(val)->sqcifAdditionalPictureMemory += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->qcifAdditionalPictureMemory))
|
|
return 0;
|
|
(val)->qcifAdditionalPictureMemory += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->cifAdditionalPictureMemory))
|
|
return 0;
|
|
(val)->cifAdditionalPictureMemory += 1;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->cif4AdditionalPictureMemory))
|
|
return 0;
|
|
(val)->cif4AdditionalPictureMemory += 1;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->cif16AdditionalPictureMemory))
|
|
return 0;
|
|
(val)->cif16AdditionalPictureMemory += 1;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->bigCpfAdditionalPictureMemory))
|
|
return 0;
|
|
(val)->bigCpfAdditionalPictureMemory += 1;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyFrameMapping_frameSequence(ASN1encoding_t enc, RTPH263VideoRedundancyFrameMapping_frameSequence *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyFrameMapping_frameSequence(ASN1decoding_t dec, RTPH263VideoRedundancyFrameMapping_frameSequence *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyFrameMapping_frameSequence(RTPH263VideoRedundancyFrameMapping_frameSequence *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_containedThreads(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding_containedThreads *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncBitVal(enc, 4, ((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_containedThreads(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding_containedThreads *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_containedThreads(RTPH263VideoRedundancyEncoding_containedThreads *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding_frameToThreadMapping *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(enc, &(val)->u.custom))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding_frameToThreadMapping *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(dec, &(val)->u.custom))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping(RTPH263VideoRedundancyEncoding_frameToThreadMapping *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(&(val)->u.custom);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingCapability_secondaryEncoding(ASN1encoding_t enc, PRedundancyEncodingCapability_secondaryEncoding *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RedundancyEncodingCapability_secondaryEncoding_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingCapability_secondaryEncoding_ElmFn(ASN1encoding_t enc, PRedundancyEncodingCapability_secondaryEncoding val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingCapability_secondaryEncoding(ASN1decoding_t dec, PRedundancyEncodingCapability_secondaryEncoding *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RedundancyEncodingCapability_secondaryEncoding_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingCapability_secondaryEncoding_ElmFn(ASN1decoding_t dec, PRedundancyEncodingCapability_secondaryEncoding val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingCapability_secondaryEncoding(PRedundancyEncodingCapability_secondaryEncoding *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RedundancyEncodingCapability_secondaryEncoding_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingCapability_secondaryEncoding_ElmFn(PRedundancyEncodingCapability_secondaryEncoding val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250Capability_mcCapability(ASN1encoding_t enc, H2250Capability_mcCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->centralizedConferenceMC))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->decentralizedConferenceMC))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250Capability_mcCapability(ASN1decoding_t dec, H2250Capability_mcCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->centralizedConferenceMC))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->decentralizedConferenceMC))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223Capability_mobileOperationTransmitCapability(ASN1encoding_t enc, H223Capability_mobileOperationTransmitCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->modeChangeCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->h223AnnexA))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->h223AnnexADoubleFlag))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->h223AnnexB))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->h223AnnexBwithHeader))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223Capability_mobileOperationTransmitCapability(ASN1decoding_t dec, H223Capability_mobileOperationTransmitCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->modeChangeCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->h223AnnexA))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->h223AnnexADoubleFlag))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->h223AnnexB))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->h223AnnexBwithHeader))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223Capability_h223MultiplexTableCapability(ASN1encoding_t enc, H223Capability_h223MultiplexTableCapability *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H223Capability_h223MultiplexTableCapability_enhanced(enc, &(val)->u.enhanced))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223Capability_h223MultiplexTableCapability(ASN1decoding_t dec, H223Capability_h223MultiplexTableCapability *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H223Capability_h223MultiplexTableCapability_enhanced(dec, &(val)->u.enhanced))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability_availableBitRates(ASN1encoding_t enc, VCCapability_availableBitRates *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_VCCapability_availableBitRates_type(enc, &(val)->type))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability_availableBitRates(ASN1decoding_t dec, VCCapability_availableBitRates *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_VCCapability_availableBitRates_type(dec, &(val)->type))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability_aal5(ASN1encoding_t enc, VCCapability_aal5 *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardMaximumSDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->backwardMaximumSDUSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability_aal5(ASN1decoding_t dec, VCCapability_aal5 *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardMaximumSDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->backwardMaximumSDUSize))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability_aal1(ASN1encoding_t enc, VCCapability_aal1 *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->nullClockRecovery))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->srtsClockRecovery))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->adaptiveClockRecovery))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->nullErrorCorrection))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->longInterleaver))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->shortInterleaver))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->errorCorrectionOnly))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->structuredDataTransfer))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->partiallyFilledCells))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability_aal1(ASN1decoding_t dec, VCCapability_aal1 *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->nullClockRecovery))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->srtsClockRecovery))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->adaptiveClockRecovery))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->nullErrorCorrection))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->longInterleaver))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->shortInterleaver))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->errorCorrectionOnly))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->structuredDataTransfer))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->partiallyFilledCells))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_Capability_h233EncryptionReceiveCapability(ASN1encoding_t enc, Capability_h233EncryptionReceiveCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->h233IVResponseTime))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Capability_h233EncryptionReceiveCapability(ASN1decoding_t dec, Capability_h233EncryptionReceiveCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->h233IVResponseTime))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject_cause(ASN1encoding_t enc, TerminalCapabilitySetReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(enc, &(val)->u.tableEntryCapacityExceeded))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject_cause(ASN1decoding_t dec, TerminalCapabilitySetReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_TerminalCapabilitySetReject_cause_tableEntryCapacityExceeded(dec, &(val)->u.tableEntryCapacityExceeded))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationReject_cause(ASN1encoding_t enc, MasterSlaveDeterminationReject_cause *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationReject_cause(ASN1decoding_t dec, MasterSlaveDeterminationReject_cause *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationAck_decision(ASN1encoding_t enc, MasterSlaveDeterminationAck_decision *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationAck_decision(ASN1decoding_t dec, MasterSlaveDeterminationAck_decision *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardIdentifier_h221NonStandard(ASN1encoding_t enc, NonStandardIdentifier_h221NonStandard *val)
|
|
{
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->t35CountryCode))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->t35Extension))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->manufacturerCode))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardIdentifier_h221NonStandard(ASN1decoding_t dec, NonStandardIdentifier_h221NonStandard *val)
|
|
{
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->t35CountryCode))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->t35Extension))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->manufacturerCode))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardIdentifier(ASN1encoding_t enc, NonStandardIdentifier *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.object))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_NonStandardIdentifier_h221NonStandard(enc, &(val)->u.h221NonStandard))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardIdentifier(ASN1decoding_t dec, NonStandardIdentifier *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.object))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_NonStandardIdentifier_h221NonStandard(dec, &(val)->u.h221NonStandard))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NonStandardIdentifier(NonStandardIdentifier *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1objectidentifier_free(&(val)->u.object);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDetermination(ASN1encoding_t enc, MasterSlaveDetermination *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->terminalType))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->statusDeterminationNumber);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->statusDeterminationNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDetermination(ASN1decoding_t dec, MasterSlaveDetermination *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->terminalType))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->statusDeterminationNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationAck(ASN1encoding_t enc, MasterSlaveDeterminationAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MasterSlaveDeterminationAck_decision(enc, &(val)->decision))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationAck(ASN1decoding_t dec, MasterSlaveDeterminationAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MasterSlaveDeterminationAck_decision(dec, &(val)->decision))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationReject(ASN1encoding_t enc, MasterSlaveDeterminationReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MasterSlaveDeterminationReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationReject(ASN1decoding_t dec, MasterSlaveDeterminationReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MasterSlaveDeterminationReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MasterSlaveDeterminationRelease(ASN1encoding_t enc, MasterSlaveDeterminationRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MasterSlaveDeterminationRelease(ASN1decoding_t dec, MasterSlaveDeterminationRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityDescriptor(ASN1encoding_t enc, CapabilityDescriptor *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->capabilityDescriptorNumber))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_CapabilityDescriptor_simultaneousCapabilities(enc, &(val)->simultaneousCapabilities))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityDescriptor(ASN1decoding_t dec, CapabilityDescriptor *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->capabilityDescriptorNumber))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_CapabilityDescriptor_simultaneousCapabilities(dec, &(val)->simultaneousCapabilities))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CapabilityDescriptor(CapabilityDescriptor *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_CapabilityDescriptor_simultaneousCapabilities(&(val)->simultaneousCapabilities);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AlternativeCapabilitySet(ASN1encoding_t enc, AlternativeCapabilitySet *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PEREncUnsignedShort(enc, ((val)->value)[i] - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AlternativeCapabilitySet(ASN1decoding_t dec, AlternativeCapabilitySet *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &((val)->value)[i]))
|
|
return 0;
|
|
((val)->value)[i] += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_AlternativeCapabilitySet(AlternativeCapabilitySet *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetAck(ASN1encoding_t enc, TerminalCapabilitySetAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetAck(ASN1decoding_t dec, TerminalCapabilitySetAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetReject(ASN1encoding_t enc, TerminalCapabilitySetReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalCapabilitySetReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetReject(ASN1decoding_t dec, TerminalCapabilitySetReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalCapabilitySetReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySetRelease(ASN1encoding_t enc, TerminalCapabilitySetRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySetRelease(ASN1decoding_t dec, TerminalCapabilitySetRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H222Capability(ASN1encoding_t enc, H222Capability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->numberOfVCs - 1))
|
|
return 0;
|
|
if (!ASN1Enc_H222Capability_vcCapability(enc, &(val)->vcCapability))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H222Capability(ASN1decoding_t dec, H222Capability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->numberOfVCs))
|
|
return 0;
|
|
(val)->numberOfVCs += 1;
|
|
if (!ASN1Dec_H222Capability_vcCapability(dec, &(val)->vcCapability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H222Capability(H222Capability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H222Capability_vcCapability(&(val)->vcCapability);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VCCapability(ASN1encoding_t enc, VCCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_VCCapability_aal1(enc, &(val)->aal1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_VCCapability_aal5(enc, &(val)->aal5))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->transportStream))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->programStream))
|
|
return 0;
|
|
if (!ASN1Enc_VCCapability_availableBitRates(enc, &(val)->availableBitRates))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VCCapability(ASN1decoding_t dec, VCCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_VCCapability_aal1(dec, &(val)->aal1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_VCCapability_aal5(dec, &(val)->aal5))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->transportStream))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->programStream))
|
|
return 0;
|
|
if (!ASN1Dec_VCCapability_availableBitRates(dec, &(val)->availableBitRates))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AnnexCCapability(ASN1encoding_t enc, H223AnnexCCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL1M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL2M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL3M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL1M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL2M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL3M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL1M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL2M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL3M))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alpduInterleaving))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAL1MPDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAL2MSDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAL3MSDUSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AnnexCCapability(ASN1decoding_t dec, H223AnnexCCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL1M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL2M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL3M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL1M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL2M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL3M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL1M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL2M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL3M))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alpduInterleaving))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAL1MPDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAL2MSDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAL3MSDUSize))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V75Capability(ASN1encoding_t enc, V75Capability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioHeader))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V75Capability(ASN1decoding_t dec, V75Capability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioHeader))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_QOSMode(ASN1encoding_t enc, QOSMode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_QOSMode(ASN1decoding_t dec, QOSMode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ATMParameters(ASN1encoding_t enc, ATMParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maxNTUSize))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atmUBR))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atmrtVBR))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atmnrtVBR))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atmABR))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atmCBR))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ATMParameters(ASN1decoding_t dec, ATMParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maxNTUSize))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atmUBR))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atmrtVBR))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atmnrtVBR))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atmABR))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atmCBR))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaTransportType(ASN1encoding_t enc, MediaTransportType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaTransportType(ASN1decoding_t dec, MediaTransportType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaChannelCapability(ASN1encoding_t enc, MediaChannelCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_MediaTransportType(enc, &(val)->mediaTransport))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaChannelCapability(ASN1decoding_t dec, MediaChannelCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_MediaTransportType(dec, &(val)->mediaTransport))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding(ASN1encoding_t enc, RTPH263VideoRedundancyEncoding *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->numberOfThreads - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->framesBetweenSyncPoints - 1))
|
|
return 0;
|
|
if (!ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping(enc, &(val)->frameToThreadMapping))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_RTPH263VideoRedundancyEncoding_containedThreads(enc, &(val)->containedThreads))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding(ASN1decoding_t dec, RTPH263VideoRedundancyEncoding *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->numberOfThreads))
|
|
return 0;
|
|
(val)->numberOfThreads += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->framesBetweenSyncPoints))
|
|
return 0;
|
|
(val)->framesBetweenSyncPoints += 1;
|
|
if (!ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping(dec, &(val)->frameToThreadMapping))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_RTPH263VideoRedundancyEncoding_containedThreads(dec, &(val)->containedThreads))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding(RTPH263VideoRedundancyEncoding *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping(&(val)->frameToThreadMapping);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_RTPH263VideoRedundancyEncoding_containedThreads(&(val)->containedThreads);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyFrameMapping(ASN1encoding_t enc, RTPH263VideoRedundancyFrameMapping *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->threadNumber))
|
|
return 0;
|
|
if (!ASN1Enc_RTPH263VideoRedundancyFrameMapping_frameSequence(enc, &(val)->frameSequence))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyFrameMapping(ASN1decoding_t dec, RTPH263VideoRedundancyFrameMapping *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->threadNumber))
|
|
return 0;
|
|
if (!ASN1Dec_RTPH263VideoRedundancyFrameMapping_frameSequence(dec, &(val)->frameSequence))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyFrameMapping(RTPH263VideoRedundancyFrameMapping *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RTPH263VideoRedundancyFrameMapping_frameSequence(&(val)->frameSequence);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultipointCapability(ASN1encoding_t enc, MultipointCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multicastCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multiUniCastConference))
|
|
return 0;
|
|
if (!ASN1Enc_MultipointCapability_mediaDistributionCapability(enc, &(val)->mediaDistributionCapability))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultipointCapability(ASN1decoding_t dec, MultipointCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multicastCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multiUniCastConference))
|
|
return 0;
|
|
if (!ASN1Dec_MultipointCapability_mediaDistributionCapability(dec, &(val)->mediaDistributionCapability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultipointCapability(MultipointCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultipointCapability_mediaDistributionCapability(&(val)->mediaDistributionCapability);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability(ASN1encoding_t enc, MediaDistributionCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->centralizedControl))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->distributedControl))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->centralizedAudio))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->distributedAudio))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->centralizedVideo))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->distributedVideo))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_MediaDistributionCapability_centralizedData(enc, &(val)->centralizedData))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_MediaDistributionCapability_distributedData(enc, &(val)->distributedData))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability(ASN1decoding_t dec, MediaDistributionCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->centralizedControl))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->distributedControl))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->centralizedAudio))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->distributedAudio))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->centralizedVideo))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->distributedVideo))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_MediaDistributionCapability_centralizedData(dec, &(val)->centralizedData))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_MediaDistributionCapability_distributedData(dec, &(val)->distributedData))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability(MediaDistributionCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_MediaDistributionCapability_centralizedData(&(val)->centralizedData);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_MediaDistributionCapability_distributedData(&(val)->distributedData);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H261VideoCapability(ASN1encoding_t enc, H261VideoCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->qcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->cifMPI - 1))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maxBitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->stillImageTransmission))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H261VideoCapability(ASN1decoding_t dec, H261VideoCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 2, &(val)->qcifMPI))
|
|
return 0;
|
|
(val)->qcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 2, &(val)->cifMPI))
|
|
return 0;
|
|
(val)->cifMPI += 1;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maxBitRate))
|
|
return 0;
|
|
(val)->maxBitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->stillImageTransmission))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H262VideoCapability(ASN1encoding_t enc, H262VideoCapability *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_SPatML))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_MPatLL))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_MPatML))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_MPatH_14))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_MPatHL))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_SNRatLL))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_SNRatML))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_SpatialatH_14))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_HPatML))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_HPatH_14))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->profileAndLevel_HPatHL))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
l = ASN1uint32_uoctets((val)->videoBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->vbvBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->framesPerSecond))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->luminanceSampleRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H262VideoCapability(ASN1decoding_t dec, H262VideoCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_SPatML))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_MPatLL))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_MPatML))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_MPatH_14))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_MPatHL))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_SNRatLL))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_SNRatML))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_SpatialatH_14))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_HPatML))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_HPatH_14))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->profileAndLevel_HPatHL))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->framesPerSecond))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo(ASN1encoding_t enc, EnhancementLayerInfo *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->baseBitRateConstrained))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_EnhancementLayerInfo_snrEnhancement(enc, &(val)->snrEnhancement))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_EnhancementLayerInfo_spatialEnhancement(enc, &(val)->spatialEnhancement))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_EnhancementLayerInfo_bPictureEnhancement(enc, &(val)->bPictureEnhancement))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo(ASN1decoding_t dec, EnhancementLayerInfo *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->baseBitRateConstrained))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_EnhancementLayerInfo_snrEnhancement(dec, &(val)->snrEnhancement))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_EnhancementLayerInfo_spatialEnhancement(dec, &(val)->spatialEnhancement))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_EnhancementLayerInfo_bPictureEnhancement(dec, &(val)->bPictureEnhancement))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo(EnhancementLayerInfo *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_EnhancementLayerInfo_snrEnhancement(&(val)->snrEnhancement);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_EnhancementLayerInfo_spatialEnhancement(&(val)->spatialEnhancement);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_EnhancementLayerInfo_bPictureEnhancement(&(val)->bPictureEnhancement);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransparencyParameters(ASN1encoding_t enc, TransparencyParameters *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->presentationOrder - 1))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->offset_x + 262144);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->offset_x + 262144))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->offset_y + 262144);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->offset_y + 262144))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->scale_x - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->scale_y - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransparencyParameters(ASN1decoding_t dec, TransparencyParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->presentationOrder))
|
|
return 0;
|
|
(val)->presentationOrder += 1;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->offset_x))
|
|
return 0;
|
|
(val)->offset_x += 0 - 262144;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->offset_y))
|
|
return 0;
|
|
(val)->offset_y += 0 - 262144;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->scale_x))
|
|
return 0;
|
|
(val)->scale_x += 1;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->scale_y))
|
|
return 0;
|
|
(val)->scale_y += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RefPictureSelection(ASN1encoding_t enc, RefPictureSelection *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_RefPictureSelection_additionalPictureMemory(enc, &(val)->additionalPictureMemory))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoMux))
|
|
return 0;
|
|
if (!ASN1Enc_RefPictureSelection_videoBackChannelSend(enc, &(val)->videoBackChannelSend))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RefPictureSelection(ASN1decoding_t dec, RefPictureSelection *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_RefPictureSelection_additionalPictureMemory(dec, &(val)->additionalPictureMemory))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoMux))
|
|
return 0;
|
|
if (!ASN1Dec_RefPictureSelection_videoBackChannelSend(dec, &(val)->videoBackChannelSend))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureClockFrequency(ASN1encoding_t enc, CustomPictureClockFrequency *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 5, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->clockConversionCode - 1000))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 7, (val)->clockDivisor - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->sqcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->qcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->cifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->cif4MPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->cif16MPI - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureClockFrequency(ASN1decoding_t dec, CustomPictureClockFrequency *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 5, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 1, &(val)->clockConversionCode))
|
|
return 0;
|
|
(val)->clockConversionCode += 1000;
|
|
if (!ASN1PERDecU16Val(dec, 7, &(val)->clockDivisor))
|
|
return 0;
|
|
(val)->clockDivisor += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->sqcifMPI))
|
|
return 0;
|
|
(val)->sqcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->qcifMPI))
|
|
return 0;
|
|
(val)->qcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->cifMPI))
|
|
return 0;
|
|
(val)->cifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->cif4MPI))
|
|
return 0;
|
|
(val)->cif4MPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->cif16MPI))
|
|
return 0;
|
|
(val)->cif16MPI += 1;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CustomPictureFormat(ASN1encoding_t enc, CustomPictureFormat *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maxCustomPictureWidth - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maxCustomPictureHeight - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->minCustomPictureWidth - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->minCustomPictureHeight - 1))
|
|
return 0;
|
|
if (!ASN1Enc_CustomPictureFormat_mPI(enc, &(val)->mPI))
|
|
return 0;
|
|
if (!ASN1Enc_CustomPictureFormat_pixelAspectInformation(enc, &(val)->pixelAspectInformation))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CustomPictureFormat(ASN1decoding_t dec, CustomPictureFormat *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maxCustomPictureWidth))
|
|
return 0;
|
|
(val)->maxCustomPictureWidth += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maxCustomPictureHeight))
|
|
return 0;
|
|
(val)->maxCustomPictureHeight += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->minCustomPictureWidth))
|
|
return 0;
|
|
(val)->minCustomPictureWidth += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->minCustomPictureHeight))
|
|
return 0;
|
|
(val)->minCustomPictureHeight += 1;
|
|
if (!ASN1Dec_CustomPictureFormat_mPI(dec, &(val)->mPI))
|
|
return 0;
|
|
if (!ASN1Dec_CustomPictureFormat_pixelAspectInformation(dec, &(val)->pixelAspectInformation))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CustomPictureFormat(CustomPictureFormat *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CustomPictureFormat_mPI(&(val)->mPI);
|
|
ASN1Free_CustomPictureFormat_pixelAspectInformation(&(val)->pixelAspectInformation);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263ModeComboFlags(ASN1encoding_t enc, H263ModeComboFlags *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->pbFrames))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->advancedIntraCodingMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->deblockingFilterMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unlimitedMotionVectors))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesInOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesInOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesNoOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesNoOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->improvedPBFramesMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->referencePicSelect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicPictureResizingByFour))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicPictureResizingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicWarpingHalfPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicWarpingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->reducedResolutionUpdate))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->independentSegmentDecoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alternateInterVLCMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->modifiedQuantizationMode))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263ModeComboFlags(ASN1decoding_t dec, H263ModeComboFlags *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->pbFrames))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->advancedIntraCodingMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->deblockingFilterMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unlimitedMotionVectors))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesInOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesInOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesNoOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesNoOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->improvedPBFramesMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->referencePicSelect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicPictureResizingByFour))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicPictureResizingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicWarpingHalfPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicWarpingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->reducedResolutionUpdate))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->independentSegmentDecoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alternateInterVLCMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->modifiedQuantizationMode))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172VideoCapability(ASN1encoding_t enc, IS11172VideoCapability *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->constrainedBitstream))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
l = ASN1uint32_uoctets((val)->videoBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->vbvBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->pictureRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->luminanceSampleRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172VideoCapability(ASN1decoding_t dec, IS11172VideoCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->constrainedBitstream))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->pictureRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCCapability(ASN1encoding_t enc, G7231AnnexCCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maxAl_sduAudioFrames - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->silenceSuppression))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_G7231AnnexCCapability_g723AnnexCAudioMode(enc, &(val)->g723AnnexCAudioMode))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCCapability(ASN1decoding_t dec, G7231AnnexCCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maxAl_sduAudioFrames))
|
|
return 0;
|
|
(val)->maxAl_sduAudioFrames += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->silenceSuppression))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_G7231AnnexCCapability_g723AnnexCAudioMode(dec, &(val)->g723AnnexCAudioMode))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172AudioCapability(ASN1encoding_t enc, IS11172AudioCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer3))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling32k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling44k1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling48k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->singleChannel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->twoChannels))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172AudioCapability(ASN1decoding_t dec, IS11172AudioCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer3))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling32k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling44k1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling48k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->singleChannel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->twoChannels))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS13818AudioCapability(ASN1encoding_t enc, IS13818AudioCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioLayer3))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling16k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling22k05))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling24k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling32k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling44k1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioSampling48k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->singleChannel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->twoChannels))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->threeChannels2_1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->threeChannels3_0))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fourChannels2_0_2_0))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fourChannels2_2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fourChannels3_1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fiveChannels3_0_2_0))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fiveChannels3_2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->lowFrequencyEnhancement))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multilingual))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS13818AudioCapability(ASN1decoding_t dec, IS13818AudioCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioLayer3))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling16k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling22k05))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling24k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling32k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling44k1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioSampling48k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->singleChannel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->twoChannels))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->threeChannels2_1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->threeChannels3_0))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fourChannels2_0_2_0))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fourChannels2_2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fourChannels3_1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fiveChannels3_0_2_0))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fiveChannels3_2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->lowFrequencyEnhancement))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multilingual))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_GSMAudioCapability(ASN1encoding_t enc, GSMAudioCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->audioUnitSize - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->comfortNoise))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->scrambled))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_GSMAudioCapability(ASN1decoding_t dec, GSMAudioCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->audioUnitSize))
|
|
return 0;
|
|
(val)->audioUnitSize += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->comfortNoise))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->scrambled))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V42bis(ASN1encoding_t enc, V42bis *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 16, (val)->numberOfCodewords - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maximumStringLength - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V42bis(ASN1decoding_t dec, V42bis *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 16, &(val)->numberOfCodewords))
|
|
return 0;
|
|
(val)->numberOfCodewords += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maximumStringLength))
|
|
return 0;
|
|
(val)->maximumStringLength += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_T84Profile(ASN1encoding_t enc, T84Profile *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_T84Profile_t84Restricted(enc, &(val)->u.t84Restricted))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_T84Profile(ASN1decoding_t dec, T84Profile *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_T84Profile_t84Restricted(dec, &(val)->u.t84Restricted))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCapability(ASN1encoding_t enc, ConferenceCapability *val)
|
|
{
|
|
ASN1octet_t o[2];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 2);
|
|
o[1] |= 0x80;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, o))
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_ConferenceCapability_nonStandardData(enc, &(val)->nonStandardData))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->chairControlCapability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[1] & 0x80) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->videoIndicateMixingCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCapability(ASN1decoding_t dec, ConferenceCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_ConferenceCapability_nonStandardData(dec, &(val)->nonStandardData))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->chairControlCapability))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->videoIndicateMixingCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCapability(ConferenceCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_ConferenceCapability_nonStandardData(&(val)->nonStandardData);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_Q2931Address(ASN1encoding_t enc, Q2931Address *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_Q2931Address_address(enc, &(val)->address))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->subaddress, 1, 20, 5))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Q2931Address(ASN1decoding_t dec, Q2931Address *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_Q2931Address_address(dec, &(val)->address))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->subaddress, 1, 20, 5))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Q2931Address(Q2931Address *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Q2931Address_address(&(val)->address);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V75Parameters(ASN1encoding_t enc, V75Parameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioHeaderPresent))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V75Parameters(ASN1decoding_t dec, V75Parameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioHeaderPresent))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H222LogicalChannelParameters(ASN1encoding_t enc, H222LogicalChannelParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->resourceID))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->subChannelID))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->pcr_pid))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->programDescriptors))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->streamDescriptors))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H222LogicalChannelParameters(ASN1decoding_t dec, H222LogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->resourceID))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->subChannelID))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->pcr_pid))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->programDescriptors))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->streamDescriptors))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H222LogicalChannelParameters(H222LogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1octetstring_free(&(val)->programDescriptors);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1octetstring_free(&(val)->streamDescriptors);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL2MParameters(ASN1encoding_t enc, H223AL2MParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL2MParameters_headerFEC(enc, &(val)->headerFEC))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alpduInterleaving))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL2MParameters(ASN1decoding_t dec, H223AL2MParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL2MParameters_headerFEC(dec, &(val)->headerFEC))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alpduInterleaving))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AnnexCArqParameters(ASN1encoding_t enc, H223AnnexCArqParameters *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223AnnexCArqParameters_numberOfRetransmissions(enc, &(val)->numberOfRetransmissions))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->sendBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->sendBufferSize))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AnnexCArqParameters(ASN1decoding_t dec, H223AnnexCArqParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223AnnexCArqParameters_numberOfRetransmissions(dec, &(val)->numberOfRetransmissions))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->sendBufferSize))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CRCLength(ASN1encoding_t enc, CRCLength *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CRCLength(ASN1decoding_t dec, CRCLength *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EscrowData(ASN1encoding_t enc, EscrowData *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->escrowID))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 16, ((val)->escrowValue).length - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, ((val)->escrowValue).length, ((val)->escrowValue).value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EscrowData(ASN1decoding_t dec, EscrowData *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->escrowID))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 16, &((val)->escrowValue).length))
|
|
return 0;
|
|
((val)->escrowValue).length += 1;
|
|
if (!ASN1PERDecBits(dec, ((val)->escrowValue).length, &((val)->escrowValue).value))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EscrowData(EscrowData *val)
|
|
{
|
|
if (val) {
|
|
ASN1objectidentifier_free(&(val)->escrowID);
|
|
ASN1bitstring_free(&(val)->escrowValue);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelReject(ASN1encoding_t enc, OpenLogicalChannelReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_OpenLogicalChannelReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelReject(ASN1decoding_t dec, OpenLogicalChannelReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (!ASN1Dec_OpenLogicalChannelReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelConfirm(ASN1encoding_t enc, OpenLogicalChannelConfirm *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelConfirm(ASN1decoding_t dec, OpenLogicalChannelConfirm *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannel(ASN1encoding_t enc, CloseLogicalChannel *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x80;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_CloseLogicalChannel_source(enc, &(val)->source))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_CloseLogicalChannel_reason(ee, &(val)->reason))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannel(ASN1decoding_t dec, CloseLogicalChannel *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (!ASN1Dec_CloseLogicalChannel_source(dec, &(val)->source))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_CloseLogicalChannel_reason(dd, &(val)->reason))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CloseLogicalChannelAck(ASN1encoding_t enc, CloseLogicalChannelAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CloseLogicalChannelAck(ASN1decoding_t dec, CloseLogicalChannelAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseAck(ASN1encoding_t enc, RequestChannelCloseAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseAck(ASN1decoding_t dec, RequestChannelCloseAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseReject(ASN1encoding_t enc, RequestChannelCloseReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_RequestChannelCloseReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseReject(ASN1decoding_t dec, RequestChannelCloseReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (!ASN1Dec_RequestChannelCloseReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelCloseRelease(ASN1encoding_t enc, RequestChannelCloseRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelCloseRelease(ASN1decoding_t dec, RequestChannelCloseRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySend(ASN1encoding_t enc, MultiplexEntrySend *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexEntrySend_multiplexEntryDescriptors(enc, &(val)->multiplexEntryDescriptors))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySend(ASN1decoding_t dec, MultiplexEntrySend *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_MultiplexEntrySend_multiplexEntryDescriptors(dec, &(val)->multiplexEntryDescriptors))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySend(MultiplexEntrySend *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexEntrySend_multiplexEntryDescriptors(&(val)->multiplexEntryDescriptors);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexElement(ASN1encoding_t enc, MultiplexElement *val)
|
|
{
|
|
if (!ASN1Enc_MultiplexElement_type(enc, &(val)->type))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexElement_repeatCount(enc, &(val)->repeatCount))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexElement(ASN1decoding_t dec, MultiplexElement *val)
|
|
{
|
|
if (!ASN1Dec_MultiplexElement_type(dec, &(val)->type))
|
|
return 0;
|
|
if (!ASN1Dec_MultiplexElement_repeatCount(dec, &(val)->repeatCount))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexElement(MultiplexElement *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexElement_type(&(val)->type);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendAck(ASN1encoding_t enc, MultiplexEntrySendAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexEntrySendAck_multiplexTableEntryNumber(enc, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendAck(ASN1decoding_t dec, MultiplexEntrySendAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_MultiplexEntrySendAck_multiplexTableEntryNumber(dec, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendAck(MultiplexEntrySendAck *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexEntrySendAck_multiplexTableEntryNumber(&(val)->multiplexTableEntryNumber);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryRejectionDescriptions(ASN1encoding_t enc, MultiplexEntryRejectionDescriptions *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->multiplexTableEntryNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexEntryRejectionDescriptions_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryRejectionDescriptions(ASN1decoding_t dec, MultiplexEntryRejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
(val)->multiplexTableEntryNumber += 1;
|
|
if (!ASN1Dec_MultiplexEntryRejectionDescriptions_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendRelease(ASN1encoding_t enc, MultiplexEntrySendRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexEntrySendRelease_multiplexTableEntryNumber(enc, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendRelease(ASN1decoding_t dec, MultiplexEntrySendRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MultiplexEntrySendRelease_multiplexTableEntryNumber(dec, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendRelease(MultiplexEntrySendRelease *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexEntrySendRelease_multiplexTableEntryNumber(&(val)->multiplexTableEntryNumber);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntry(ASN1encoding_t enc, RequestMultiplexEntry *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntry_entryNumbers(enc, &(val)->entryNumbers))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntry(ASN1decoding_t dec, RequestMultiplexEntry *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMultiplexEntry_entryNumbers(dec, &(val)->entryNumbers))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntry(RequestMultiplexEntry *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestMultiplexEntry_entryNumbers(&(val)->entryNumbers);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryAck(ASN1encoding_t enc, RequestMultiplexEntryAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntryAck_entryNumbers(enc, &(val)->entryNumbers))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryAck(ASN1decoding_t dec, RequestMultiplexEntryAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMultiplexEntryAck_entryNumbers(dec, &(val)->entryNumbers))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryAck(RequestMultiplexEntryAck *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestMultiplexEntryAck_entryNumbers(&(val)->entryNumbers);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRejectionDescriptions(ASN1encoding_t enc, RequestMultiplexEntryRejectionDescriptions *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->multiplexTableEntryNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntryRejectionDescriptions_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRejectionDescriptions(ASN1decoding_t dec, RequestMultiplexEntryRejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
(val)->multiplexTableEntryNumber += 1;
|
|
if (!ASN1Dec_RequestMultiplexEntryRejectionDescriptions_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryRelease(ASN1encoding_t enc, RequestMultiplexEntryRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntryRelease_entryNumbers(enc, &(val)->entryNumbers))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryRelease(ASN1decoding_t dec, RequestMultiplexEntryRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMultiplexEntryRelease_entryNumbers(dec, &(val)->entryNumbers))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryRelease(RequestMultiplexEntryRelease *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestMultiplexEntryRelease_entryNumbers(&(val)->entryNumbers);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMode(ASN1encoding_t enc, RequestMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMode_requestedModes(enc, &(val)->requestedModes))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMode(ASN1decoding_t dec, RequestMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMode_requestedModes(dec, &(val)->requestedModes))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMode(RequestMode *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestMode_requestedModes(&(val)->requestedModes);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestModeAck(ASN1encoding_t enc, RequestModeAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_RequestModeAck_response(enc, &(val)->response))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestModeAck(ASN1decoding_t dec, RequestModeAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_RequestModeAck_response(dec, &(val)->response))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestModeReject(ASN1encoding_t enc, RequestModeReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_RequestModeReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestModeReject(ASN1decoding_t dec, RequestModeReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_RequestModeReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestModeRelease(ASN1encoding_t enc, RequestModeRelease *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestModeRelease(ASN1decoding_t dec, RequestModeRelease *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76ModeParameters(ASN1encoding_t enc, V76ModeParameters *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76ModeParameters(ASN1decoding_t dec, V76ModeParameters *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H261VideoMode(ASN1encoding_t enc, H261VideoMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H261VideoMode_resolution(enc, &(val)->resolution))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->stillImageTransmission))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H261VideoMode(ASN1decoding_t dec, H261VideoMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H261VideoMode_resolution(dec, &(val)->resolution))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->stillImageTransmission))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H262VideoMode(ASN1encoding_t enc, H262VideoMode *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_H262VideoMode_profileAndLevel(enc, &(val)->profileAndLevel))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
l = ASN1uint32_uoctets((val)->videoBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->vbvBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->framesPerSecond))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->luminanceSampleRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H262VideoMode(ASN1decoding_t dec, H262VideoMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_H262VideoMode_profileAndLevel(dec, &(val)->profileAndLevel))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->framesPerSecond))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172VideoMode(ASN1encoding_t enc, IS11172VideoMode *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->constrainedBitstream))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
l = ASN1uint32_uoctets((val)->videoBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->vbvBufferSize);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->pictureRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->luminanceSampleRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172VideoMode(ASN1decoding_t dec, IS11172VideoMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->constrainedBitstream))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->videoBitRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->vbvBufferSize))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->samplesPerLine))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->linesPerFrame))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->pictureRate))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->luminanceSampleRate))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS11172AudioMode(ASN1encoding_t enc, IS11172AudioMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_IS11172AudioMode_audioLayer(enc, &(val)->audioLayer))
|
|
return 0;
|
|
if (!ASN1Enc_IS11172AudioMode_audioSampling(enc, &(val)->audioSampling))
|
|
return 0;
|
|
if (!ASN1Enc_IS11172AudioMode_multichannelType(enc, &(val)->multichannelType))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS11172AudioMode(ASN1decoding_t dec, IS11172AudioMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_IS11172AudioMode_audioLayer(dec, &(val)->audioLayer))
|
|
return 0;
|
|
if (!ASN1Dec_IS11172AudioMode_audioSampling(dec, &(val)->audioSampling))
|
|
return 0;
|
|
if (!ASN1Dec_IS11172AudioMode_multichannelType(dec, &(val)->multichannelType))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IS13818AudioMode(ASN1encoding_t enc, IS13818AudioMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_IS13818AudioMode_audioLayer(enc, &(val)->audioLayer))
|
|
return 0;
|
|
if (!ASN1Enc_IS13818AudioMode_audioSampling(enc, &(val)->audioSampling))
|
|
return 0;
|
|
if (!ASN1Enc_IS13818AudioMode_multichannelType(enc, &(val)->multichannelType))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->lowFrequencyEnhancement))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multilingual))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IS13818AudioMode(ASN1decoding_t dec, IS13818AudioMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_IS13818AudioMode_audioLayer(dec, &(val)->audioLayer))
|
|
return 0;
|
|
if (!ASN1Dec_IS13818AudioMode_audioSampling(dec, &(val)->audioSampling))
|
|
return 0;
|
|
if (!ASN1Dec_IS13818AudioMode_multichannelType(dec, &(val)->multichannelType))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->lowFrequencyEnhancement))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multilingual))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_G7231AnnexCMode(ASN1encoding_t enc, G7231AnnexCMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->maxAl_sduAudioFrames - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->silenceSuppression))
|
|
return 0;
|
|
if (!ASN1Enc_G7231AnnexCMode_g723AnnexCAudioMode(enc, &(val)->g723AnnexCAudioMode))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_G7231AnnexCMode(ASN1decoding_t dec, G7231AnnexCMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->maxAl_sduAudioFrames))
|
|
return 0;
|
|
(val)->maxAl_sduAudioFrames += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->silenceSuppression))
|
|
return 0;
|
|
if (!ASN1Dec_G7231AnnexCMode_g723AnnexCAudioMode(dec, &(val)->g723AnnexCAudioMode))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RoundTripDelayRequest(ASN1encoding_t enc, RoundTripDelayRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RoundTripDelayRequest(ASN1decoding_t dec, RoundTripDelayRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RoundTripDelayResponse(ASN1encoding_t enc, RoundTripDelayResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RoundTripDelayResponse(ASN1decoding_t dec, RoundTripDelayResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopRequest(ASN1encoding_t enc, MaintenanceLoopRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MaintenanceLoopRequest_type(enc, &(val)->type))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopRequest(ASN1decoding_t dec, MaintenanceLoopRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MaintenanceLoopRequest_type(dec, &(val)->type))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopAck(ASN1encoding_t enc, MaintenanceLoopAck *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MaintenanceLoopAck_type(enc, &(val)->type))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopAck(ASN1decoding_t dec, MaintenanceLoopAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MaintenanceLoopAck_type(dec, &(val)->type))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopReject(ASN1encoding_t enc, MaintenanceLoopReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_MaintenanceLoopReject_type(enc, &(val)->type))
|
|
return 0;
|
|
if (!ASN1Enc_MaintenanceLoopReject_cause(enc, &(val)->cause))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopReject(ASN1decoding_t dec, MaintenanceLoopReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_MaintenanceLoopReject_type(dec, &(val)->type))
|
|
return 0;
|
|
if (!ASN1Dec_MaintenanceLoopReject_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MaintenanceLoopOffCommand(ASN1encoding_t enc, MaintenanceLoopOffCommand *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MaintenanceLoopOffCommand(ASN1decoding_t dec, MaintenanceLoopOffCommand *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeCommand(ASN1encoding_t enc, CommunicationModeCommand *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_CommunicationModeCommand_communicationModeTable(enc, &(val)->communicationModeTable))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeCommand(ASN1decoding_t dec, CommunicationModeCommand *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_CommunicationModeCommand_communicationModeTable(dec, &(val)->communicationModeTable))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeCommand(CommunicationModeCommand *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CommunicationModeCommand_communicationModeTable(&(val)->communicationModeTable);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeRequest(ASN1encoding_t enc, CommunicationModeRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeRequest(ASN1decoding_t dec, CommunicationModeRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeResponse(ASN1encoding_t enc, CommunicationModeResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_CommunicationModeResponse_communicationModeTable(enc, &(val)->u.communicationModeTable))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeResponse(ASN1decoding_t dec, CommunicationModeResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_CommunicationModeResponse_communicationModeTable(dec, &(val)->u.communicationModeTable))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeResponse(CommunicationModeResponse *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_CommunicationModeResponse_communicationModeTable(&(val)->u.communicationModeTable);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_Criteria(ASN1encoding_t enc, Criteria *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->field))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->value, 1, 65535, 16))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Criteria(ASN1decoding_t dec, Criteria *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->field))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->value, 1, 65535, 16))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Criteria(Criteria *val)
|
|
{
|
|
if (val) {
|
|
ASN1objectidentifier_free(&(val)->field);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalLabel(ASN1encoding_t enc, TerminalLabel *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->mcuNumber))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->terminalNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalLabel(ASN1decoding_t dec, TerminalLabel *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->mcuNumber))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->terminalNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestAllTerminalIDsResponse(ASN1encoding_t enc, RequestAllTerminalIDsResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_RequestAllTerminalIDsResponse_terminalInformation(enc, &(val)->terminalInformation))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestAllTerminalIDsResponse(ASN1decoding_t dec, RequestAllTerminalIDsResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_RequestAllTerminalIDsResponse_terminalInformation(dec, &(val)->terminalInformation))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestAllTerminalIDsResponse(RequestAllTerminalIDsResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestAllTerminalIDsResponse_terminalInformation(&(val)->terminalInformation);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalInformation(ASN1encoding_t enc, TerminalInformation *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalInformation(ASN1decoding_t dec, TerminalInformation *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TerminalInformation(TerminalInformation *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RemoteMCRequest(ASN1encoding_t enc, RemoteMCRequest *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RemoteMCRequest(ASN1decoding_t dec, RemoteMCRequest *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RemoteMCResponse(ASN1encoding_t enc, RemoteMCResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_RemoteMCResponse_reject(enc, &(val)->u.reject))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RemoteMCResponse(ASN1decoding_t dec, RemoteMCResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_RemoteMCResponse_reject(dec, &(val)->u.reject))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SendTerminalCapabilitySet(ASN1encoding_t enc, SendTerminalCapabilitySet *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_SendTerminalCapabilitySet_specificRequest(enc, &(val)->u.specificRequest))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SendTerminalCapabilitySet(ASN1decoding_t dec, SendTerminalCapabilitySet *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_SendTerminalCapabilitySet_specificRequest(dec, &(val)->u.specificRequest))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SendTerminalCapabilitySet(SendTerminalCapabilitySet *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_SendTerminalCapabilitySet_specificRequest(&(val)->u.specificRequest);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FlowControlCommand(ASN1encoding_t enc, FlowControlCommand *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_FlowControlCommand_scope(enc, &(val)->scope))
|
|
return 0;
|
|
if (!ASN1Enc_FlowControlCommand_restriction(enc, &(val)->restriction))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FlowControlCommand(ASN1decoding_t dec, FlowControlCommand *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_FlowControlCommand_scope(dec, &(val)->scope))
|
|
return 0;
|
|
if (!ASN1Dec_FlowControlCommand_restriction(dec, &(val)->restriction))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SubstituteConferenceIDCommand(ASN1encoding_t enc, SubstituteConferenceIDCommand *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceIdentifier, 16))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SubstituteConferenceIDCommand(ASN1decoding_t dec, SubstituteConferenceIDCommand *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceIdentifier, 16))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SubstituteConferenceIDCommand(SubstituteConferenceIDCommand *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_KeyProtectionMethod(ASN1encoding_t enc, KeyProtectionMethod *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->secureChannel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->sharedSecret))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->certProtectedKey))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_KeyProtectionMethod(ASN1decoding_t dec, KeyProtectionMethod *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->secureChannel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->sharedSecret))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->certProtectedKey))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionUpdateRequest(ASN1encoding_t enc, EncryptionUpdateRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_KeyProtectionMethod(enc, &(val)->keyProtectionMethod))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionUpdateRequest(ASN1decoding_t dec, EncryptionUpdateRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_KeyProtectionMethod(dec, &(val)->keyProtectionMethod))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223MultiplexReconfiguration(ASN1encoding_t enc, H223MultiplexReconfiguration *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_H223MultiplexReconfiguration_h223ModeChange(enc, &(val)->u.h223ModeChange))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H223MultiplexReconfiguration_h223AnnexADoubleFlag(enc, &(val)->u.h223AnnexADoubleFlag))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223MultiplexReconfiguration(ASN1decoding_t dec, H223MultiplexReconfiguration *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_H223MultiplexReconfiguration_h223ModeChange(dec, &(val)->u.h223ModeChange))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H223MultiplexReconfiguration_h223AnnexADoubleFlag(dec, &(val)->u.h223AnnexADoubleFlag))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupported(ASN1encoding_t enc, FunctionNotSupported *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_FunctionNotSupported_cause(enc, &(val)->cause))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->returnedFunction))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupported(ASN1decoding_t dec, FunctionNotSupported *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_FunctionNotSupported_cause(dec, &(val)->cause))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->returnedFunction))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_FunctionNotSupported(FunctionNotSupported *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1octetstring_free(&(val)->returnedFunction);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalYouAreSeeingInSubPictureNumber(ASN1encoding_t enc, TerminalYouAreSeeingInSubPictureNumber *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->terminalNumber))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->subPictureNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalYouAreSeeingInSubPictureNumber(ASN1decoding_t dec, TerminalYouAreSeeingInSubPictureNumber *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->terminalNumber))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->subPictureNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VideoIndicateCompose(ASN1encoding_t enc, VideoIndicateCompose *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->compositionNumber))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VideoIndicateCompose(ASN1decoding_t dec, VideoIndicateCompose *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->compositionNumber))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceIndication(ASN1encoding_t enc, ConferenceIndication *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->u.sbeNumber))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.terminalNumberAssign))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.terminalJoinedConference))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.terminalLeftConference))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.terminalYouAreSeeing))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(ee, &(val)->u.floorRequested))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_TerminalYouAreSeeingInSubPictureNumber(ee, &(val)->u.terminalYouAreSeeingInSubPictureNumber))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 14:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_VideoIndicateCompose(ee, &(val)->u.videoIndicateCompose))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceIndication(ASN1decoding_t dec, ConferenceIndication *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->u.sbeNumber))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.terminalNumberAssign))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.terminalJoinedConference))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.terminalLeftConference))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.terminalYouAreSeeing))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dd, &(val)->u.floorRequested))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalYouAreSeeingInSubPictureNumber(dd, &(val)->u.terminalYouAreSeeingInSubPictureNumber))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 14:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_VideoIndicateCompose(dd, &(val)->u.videoIndicateCompose))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_JitterIndication(ASN1encoding_t enc, JitterIndication *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_JitterIndication_scope(enc, &(val)->scope))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->estimatedReceivedJitterMantissa))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->estimatedReceivedJitterExponent))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->skippedFrameCount))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->additionalDecoderBuffer);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->additionalDecoderBuffer))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_JitterIndication(ASN1decoding_t dec, JitterIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_JitterIndication_scope(dec, &(val)->scope))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 2, &(val)->estimatedReceivedJitterMantissa))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 3, &(val)->estimatedReceivedJitterExponent))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->skippedFrameCount))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->additionalDecoderBuffer))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223SkewIndication(ASN1encoding_t enc, H223SkewIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber1 - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber2 - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->skew))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223SkewIndication(ASN1decoding_t dec, H223SkewIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber1))
|
|
return 0;
|
|
(val)->logicalChannelNumber1 += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber2))
|
|
return 0;
|
|
(val)->logicalChannelNumber2 += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->skew))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250MaximumSkewIndication(ASN1encoding_t enc, H2250MaximumSkewIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber1 - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber2 - 1))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumSkew))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250MaximumSkewIndication(ASN1decoding_t dec, H2250MaximumSkewIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber1))
|
|
return 0;
|
|
(val)->logicalChannelNumber1 += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber2))
|
|
return 0;
|
|
(val)->logicalChannelNumber2 += 1;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumSkew))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VendorIdentification(ASN1encoding_t enc, VendorIdentification *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardIdentifier(enc, &(val)->vendor))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->productNumber, 1, 256, 8))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->versionNumber, 1, 256, 8))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VendorIdentification(ASN1decoding_t dec, VendorIdentification *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardIdentifier(dec, &(val)->vendor))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->productNumber, 1, 256, 8))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->versionNumber, 1, 256, 8))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_VendorIdentification(VendorIdentification *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardIdentifier(&(val)->vendor);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NewATMVCIndication(ASN1encoding_t enc, NewATMVCIndication *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x80;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->resourceID))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->bitRateLockedToPCRClock))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->bitRateLockedToNetworkClock))
|
|
return 0;
|
|
if (!ASN1Enc_NewATMVCIndication_aal(enc, &(val)->aal))
|
|
return 0;
|
|
if (!ASN1Enc_NewATMVCIndication_multiplex(enc, &(val)->multiplex))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_NewATMVCIndication_reverseParameters(ee, &(val)->reverseParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NewATMVCIndication(ASN1decoding_t dec, NewATMVCIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->resourceID))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->bitRateLockedToPCRClock))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->bitRateLockedToNetworkClock))
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_aal(dec, &(val)->aal))
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_multiplex(dec, &(val)->multiplex))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NewATMVCIndication_reverseParameters(dd, &(val)->reverseParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(ASN1encoding_t enc, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn(ASN1encoding_t enc, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom val)
|
|
{
|
|
if (!ASN1Enc_RTPH263VideoRedundancyFrameMapping(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(ASN1decoding_t dec, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn(ASN1decoding_t dec, PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom val)
|
|
{
|
|
if (!ASN1Dec_RTPH263VideoRedundancyFrameMapping(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom(PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPH263VideoRedundancyEncoding_frameToThreadMapping_custom_ElmFn(PRTPH263VideoRedundancyEncoding_frameToThreadMapping_custom val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RTPH263VideoRedundancyFrameMapping(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexElement_type_subElementList(ASN1encoding_t enc, PMultiplexElement_type_subElementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 8, (*val)->count - 2))
|
|
return 0;
|
|
for (i = 0; i < (*val)->count; i++) {
|
|
if (!ASN1Enc_MultiplexElement(enc, &((*val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexElement_type_subElementList(ASN1decoding_t dec, PMultiplexElement_type_subElementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 8, &(*val)->count))
|
|
return 0;
|
|
(*val)->count += 2;
|
|
for (i = 0; i < (*val)->count; i++) {
|
|
if (!ASN1Dec_MultiplexElement(dec, &((*val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexElement_type_subElementList(PMultiplexElement_type_subElementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (*val)->count; i++) {
|
|
ASN1Free_MultiplexElement(&(*val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestAllTerminalIDsResponse_terminalInformation(ASN1encoding_t enc, PRequestAllTerminalIDsResponse_terminalInformation *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestAllTerminalIDsResponse_terminalInformation_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestAllTerminalIDsResponse_terminalInformation_ElmFn(ASN1encoding_t enc, PRequestAllTerminalIDsResponse_terminalInformation val)
|
|
{
|
|
if (!ASN1Enc_TerminalInformation(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestAllTerminalIDsResponse_terminalInformation(ASN1decoding_t dec, PRequestAllTerminalIDsResponse_terminalInformation *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestAllTerminalIDsResponse_terminalInformation_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestAllTerminalIDsResponse_terminalInformation_ElmFn(ASN1decoding_t dec, PRequestAllTerminalIDsResponse_terminalInformation val)
|
|
{
|
|
if (!ASN1Dec_TerminalInformation(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestAllTerminalIDsResponse_terminalInformation(PRequestAllTerminalIDsResponse_terminalInformation *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestAllTerminalIDsResponse_terminalInformation_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestAllTerminalIDsResponse_terminalInformation_ElmFn(PRequestAllTerminalIDsResponse_terminalInformation val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_TerminalInformation(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalCertificateResponse(ASN1encoding_t enc, ConferenceResponse_terminalCertificateResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->certificateResponse, 1, 65535, 16))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalCertificateResponse(ASN1decoding_t dec, ConferenceResponse_terminalCertificateResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->certificateResponse, 1, 65535, 16))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalCertificateResponse(ConferenceResponse_terminalCertificateResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_chairTokenOwnerResponse(ASN1encoding_t enc, ConferenceResponse_chairTokenOwnerResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_chairTokenOwnerResponse(ASN1decoding_t dec, ConferenceResponse_chairTokenOwnerResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_chairTokenOwnerResponse(ConferenceResponse_chairTokenOwnerResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalListResponse(ASN1encoding_t enc, ConferenceResponse_terminalListResponse *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_TerminalLabel(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalListResponse(ASN1decoding_t dec, ConferenceResponse_terminalListResponse *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_TerminalLabel(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalListResponse(ConferenceResponse_terminalListResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_passwordResponse(ASN1encoding_t enc, ConferenceResponse_passwordResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->password, 1, 32, 5))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_passwordResponse(ASN1decoding_t dec, ConferenceResponse_passwordResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->password, 1, 32, 5))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_passwordResponse(ConferenceResponse_passwordResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_conferenceIDResponse(ASN1encoding_t enc, ConferenceResponse_conferenceIDResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 1, 32, 5))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_conferenceIDResponse(ASN1decoding_t dec, ConferenceResponse_conferenceIDResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 1, 32, 5))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_conferenceIDResponse(ConferenceResponse_conferenceIDResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_terminalIDResponse(ASN1encoding_t enc, ConferenceResponse_terminalIDResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_terminalIDResponse(ASN1decoding_t dec, ConferenceResponse_terminalIDResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_terminalIDResponse(ConferenceResponse_terminalIDResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse_mCTerminalIDResponse(ASN1encoding_t enc, ConferenceResponse_mCTerminalIDResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse_mCTerminalIDResponse(ASN1decoding_t dec, ConferenceResponse_mCTerminalIDResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->terminalID, 1, 128, 7))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse_mCTerminalIDResponse(ConferenceResponse_mCTerminalIDResponse *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceRequest_requestTerminalCertificate(ASN1encoding_t enc, ConferenceRequest_requestTerminalCertificate *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_CertSelectionCriteria(enc, &(val)->certSelectionCriteria))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
l = ASN1uint32_uoctets((val)->sRandom - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->sRandom - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceRequest_requestTerminalCertificate(ASN1decoding_t dec, ConferenceRequest_requestTerminalCertificate *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_CertSelectionCriteria(dec, &(val)->certSelectionCriteria))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->sRandom))
|
|
return 0;
|
|
(val)->sRandom += 1;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceRequest_requestTerminalCertificate(ConferenceRequest_requestTerminalCertificate *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_CertSelectionCriteria(&(val)->certSelectionCriteria);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject_rejectionDescriptions(ASN1encoding_t enc, RequestMultiplexEntryReject_rejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_RequestMultiplexEntryRejectionDescriptions(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject_rejectionDescriptions(ASN1decoding_t dec, RequestMultiplexEntryReject_rejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_RequestMultiplexEntryRejectionDescriptions(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject_rejectionDescriptions(RequestMultiplexEntryReject_rejectionDescriptions *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendReject_rejectionDescriptions(ASN1encoding_t enc, MultiplexEntrySendReject_rejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_MultiplexEntryRejectionDescriptions(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendReject_rejectionDescriptions(ASN1decoding_t dec, MultiplexEntrySendReject_rejectionDescriptions *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_MultiplexEntryRejectionDescriptions(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendReject_rejectionDescriptions(MultiplexEntrySendReject_rejectionDescriptions *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryDescriptor_elementList(ASN1encoding_t enc, MultiplexEntryDescriptor_elementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_MultiplexElement(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryDescriptor_elementList(ASN1decoding_t dec, MultiplexEntryDescriptor_elementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_MultiplexElement(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntryDescriptor_elementList(MultiplexEntryDescriptor_elementList *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1Free_MultiplexElement(&(val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionSync_escrowentry(ASN1encoding_t enc, PEncryptionSync_escrowentry *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_EncryptionSync_escrowentry_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionSync_escrowentry_ElmFn(ASN1encoding_t enc, PEncryptionSync_escrowentry val)
|
|
{
|
|
if (!ASN1Enc_EscrowData(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionSync_escrowentry(ASN1decoding_t dec, PEncryptionSync_escrowentry *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_EncryptionSync_escrowentry_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionSync_escrowentry_ElmFn(ASN1decoding_t dec, PEncryptionSync_escrowentry val)
|
|
{
|
|
if (!ASN1Dec_EscrowData(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionSync_escrowentry(PEncryptionSync_escrowentry *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_EncryptionSync_escrowentry_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionSync_escrowentry_ElmFn(PEncryptionSync_escrowentry val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EscrowData(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters_arqType(ASN1encoding_t enc, H223AL3MParameters_arqType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H223AnnexCArqParameters(enc, &(val)->u.typeIArq))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H223AnnexCArqParameters(enc, &(val)->u.typeIIArq))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters_arqType(ASN1decoding_t dec, H223AL3MParameters_arqType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H223AnnexCArqParameters(dec, &(val)->u.typeIArq))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H223AnnexCArqParameters(dec, &(val)->u.typeIIArq))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters_arqType(ASN1encoding_t enc, H223AL1MParameters_arqType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H223AnnexCArqParameters(enc, &(val)->u.typeIArq))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H223AnnexCArqParameters(enc, &(val)->u.typeIIArq))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters_arqType(ASN1decoding_t dec, H223AL1MParameters_arqType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H223AnnexCArqParameters(dec, &(val)->u.typeIArq))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H223AnnexCArqParameters(dec, &(val)->u.typeIIArq))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263VideoModeCombos_h263VideoCoupledModes(ASN1encoding_t enc, H263VideoModeCombos_h263VideoCoupledModes *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_H263ModeComboFlags(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263VideoModeCombos_h263VideoCoupledModes(ASN1decoding_t dec, H263VideoModeCombos_h263VideoCoupledModes *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_H263ModeComboFlags(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263VideoModeCombos_h263VideoCoupledModes(H263VideoModeCombos_h263VideoCoupledModes *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureFormat(ASN1encoding_t enc, PH263Options_customPictureFormat *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H263Options_customPictureFormat_ElmFn, 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureFormat_ElmFn(ASN1encoding_t enc, PH263Options_customPictureFormat val)
|
|
{
|
|
if (!ASN1Enc_CustomPictureFormat(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureFormat(ASN1decoding_t dec, PH263Options_customPictureFormat *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H263Options_customPictureFormat_ElmFn, sizeof(**val), 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureFormat_ElmFn(ASN1decoding_t dec, PH263Options_customPictureFormat val)
|
|
{
|
|
if (!ASN1Dec_CustomPictureFormat(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureFormat(PH263Options_customPictureFormat *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H263Options_customPictureFormat_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureFormat_ElmFn(PH263Options_customPictureFormat val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CustomPictureFormat(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureClockFrequency(ASN1encoding_t enc, PH263Options_customPictureClockFrequency *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H263Options_customPictureClockFrequency_ElmFn, 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_customPictureClockFrequency_ElmFn(ASN1encoding_t enc, PH263Options_customPictureClockFrequency val)
|
|
{
|
|
if (!ASN1Enc_CustomPictureClockFrequency(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureClockFrequency(ASN1decoding_t dec, PH263Options_customPictureClockFrequency *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H263Options_customPictureClockFrequency_ElmFn, sizeof(**val), 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_customPictureClockFrequency_ElmFn(ASN1decoding_t dec, PH263Options_customPictureClockFrequency val)
|
|
{
|
|
if (!ASN1Dec_CustomPictureClockFrequency(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureClockFrequency(PH263Options_customPictureClockFrequency *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H263Options_customPictureClockFrequency_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_customPictureClockFrequency_ElmFn(PH263Options_customPictureClockFrequency val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultipointCapability_mediaDistributionCapability(ASN1encoding_t enc, PMultipointCapability_mediaDistributionCapability *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_MultipointCapability_mediaDistributionCapability_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultipointCapability_mediaDistributionCapability_ElmFn(ASN1encoding_t enc, PMultipointCapability_mediaDistributionCapability val)
|
|
{
|
|
if (!ASN1Enc_MediaDistributionCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultipointCapability_mediaDistributionCapability(ASN1decoding_t dec, PMultipointCapability_mediaDistributionCapability *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_MultipointCapability_mediaDistributionCapability_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultipointCapability_mediaDistributionCapability_ElmFn(ASN1decoding_t dec, PMultipointCapability_mediaDistributionCapability val)
|
|
{
|
|
if (!ASN1Dec_MediaDistributionCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultipointCapability_mediaDistributionCapability(PMultipointCapability_mediaDistributionCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_MultipointCapability_mediaDistributionCapability_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultipointCapability_mediaDistributionCapability_ElmFn(PMultipointCapability_mediaDistributionCapability val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MediaDistributionCapability(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransportCapability_mediaChannelCapabilities(ASN1encoding_t enc, TransportCapability_mediaChannelCapabilities *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_MediaChannelCapability(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransportCapability_mediaChannelCapabilities(ASN1decoding_t dec, TransportCapability_mediaChannelCapabilities *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_MediaChannelCapability(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TransportCapability_mediaChannelCapabilities(TransportCapability_mediaChannelCapabilities *val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H222Capability_vcCapability(ASN1encoding_t enc, PH222Capability_vcCapability *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H222Capability_vcCapability_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H222Capability_vcCapability_ElmFn(ASN1encoding_t enc, PH222Capability_vcCapability val)
|
|
{
|
|
if (!ASN1Enc_VCCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H222Capability_vcCapability(ASN1decoding_t dec, PH222Capability_vcCapability *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H222Capability_vcCapability_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H222Capability_vcCapability_ElmFn(ASN1decoding_t dec, PH222Capability_vcCapability val)
|
|
{
|
|
if (!ASN1Dec_VCCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H222Capability_vcCapability(PH222Capability_vcCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H222Capability_vcCapability_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H222Capability_vcCapability_ElmFn(PH222Capability_vcCapability val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityDescriptor_simultaneousCapabilities(ASN1encoding_t enc, PCapabilityDescriptor_simultaneousCapabilities *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CapabilityDescriptor_simultaneousCapabilities_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityDescriptor_simultaneousCapabilities_ElmFn(ASN1encoding_t enc, PCapabilityDescriptor_simultaneousCapabilities val)
|
|
{
|
|
if (!ASN1Enc_AlternativeCapabilitySet(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityDescriptor_simultaneousCapabilities(ASN1decoding_t dec, PCapabilityDescriptor_simultaneousCapabilities *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CapabilityDescriptor_simultaneousCapabilities_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityDescriptor_simultaneousCapabilities_ElmFn(ASN1decoding_t dec, PCapabilityDescriptor_simultaneousCapabilities val)
|
|
{
|
|
if (!ASN1Dec_AlternativeCapabilitySet(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CapabilityDescriptor_simultaneousCapabilities(PCapabilityDescriptor_simultaneousCapabilities *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CapabilityDescriptor_simultaneousCapabilities_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CapabilityDescriptor_simultaneousCapabilities_ElmFn(PCapabilityDescriptor_simultaneousCapabilities val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_AlternativeCapabilitySet(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet_capabilityDescriptors(ASN1encoding_t enc, TerminalCapabilitySet_capabilityDescriptors *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_CapabilityDescriptor(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet_capabilityDescriptors(ASN1decoding_t dec, TerminalCapabilitySet_capabilityDescriptors *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_CapabilityDescriptor(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet_capabilityDescriptors(TerminalCapabilitySet_capabilityDescriptors *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1Free_CapabilityDescriptor(&(val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardParameter(ASN1encoding_t enc, NonStandardParameter *val)
|
|
{
|
|
if (!ASN1Enc_NonStandardIdentifier(enc, &(val)->nonStandardIdentifier))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardParameter(ASN1decoding_t dec, NonStandardParameter *val)
|
|
{
|
|
if (!ASN1Dec_NonStandardIdentifier(dec, &(val)->nonStandardIdentifier))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NonStandardParameter(NonStandardParameter *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardIdentifier(&(val)->nonStandardIdentifier);
|
|
ASN1octetstring_free(&(val)->data);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223Capability(ASN1encoding_t enc, H223Capability *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x80;
|
|
o[0] |= 0x40;
|
|
y = ASN1PEREncCheckExtensions(4, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->transportWithI_frames))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoWithAL3))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audioWithAL3))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dataWithAL3))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAl2SDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAl3SDUSize))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumDelayJitter))
|
|
return 0;
|
|
if (!ASN1Enc_H223Capability_h223MultiplexTableCapability(enc, &(val)->h223MultiplexTableCapability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 4, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->maxMUXPDUSizeCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->nsrpSupport))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x20) {
|
|
if (!ASN1Enc_H223Capability_mobileOperationTransmitCapability(ee, &(val)->mobileOperationTransmitCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x10) {
|
|
if (!ASN1Enc_H223AnnexCCapability(ee, &(val)->h223AnnexCCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223Capability(ASN1decoding_t dec, H223Capability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->transportWithI_frames))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoWithAL3))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audioWithAL3))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL1))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL2))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dataWithAL3))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAl2SDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAl3SDUSize))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumDelayJitter))
|
|
return 0;
|
|
if (!ASN1Dec_H223Capability_h223MultiplexTableCapability(dec, &(val)->h223MultiplexTableCapability))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->maxMUXPDUSizeCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->nsrpSupport))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223Capability_mobileOperationTransmitCapability(dd, &(val)->mobileOperationTransmitCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AnnexCCapability(dd, &(val)->h223AnnexCCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76Capability(ASN1encoding_t enc, V76Capability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->suspendResumeCapabilitywAddress))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->suspendResumeCapabilitywoAddress))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->rejCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->sREJCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->mREJCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->crc8bitCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->crc16bitCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->crc32bitCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->uihCapability))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->numOfDLCS - 2))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->twoOctetAddressFieldCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->loopBackTestCapability))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->n401Capability - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 7, (val)->maxWindowSizeCapability - 1))
|
|
return 0;
|
|
if (!ASN1Enc_V75Capability(enc, &(val)->v75Capability))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76Capability(ASN1decoding_t dec, V76Capability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->suspendResumeCapabilitywAddress))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->suspendResumeCapabilitywoAddress))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->rejCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->sREJCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->mREJCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->crc8bitCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->crc16bitCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->crc32bitCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->uihCapability))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->numOfDLCS))
|
|
return 0;
|
|
(val)->numOfDLCS += 2;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->twoOctetAddressFieldCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->loopBackTestCapability))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->n401Capability))
|
|
return 0;
|
|
(val)->n401Capability += 1;
|
|
if (!ASN1PERDecU16Val(dec, 7, &(val)->maxWindowSizeCapability))
|
|
return 0;
|
|
(val)->maxWindowSizeCapability += 1;
|
|
if (!ASN1Dec_V75Capability(dec, &(val)->v75Capability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RSVPParameters(ASN1encoding_t enc, RSVPParameters *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_QOSMode(enc, &(val)->qosMode))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
l = ASN1uint32_uoctets((val)->tokenRate - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->tokenRate - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
l = ASN1uint32_uoctets((val)->bucketSize - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bucketSize - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
l = ASN1uint32_uoctets((val)->peakRate - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->peakRate - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
l = ASN1uint32_uoctets((val)->minPoliced - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->minPoliced - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->maxPktSize - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->maxPktSize - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RSVPParameters(ASN1decoding_t dec, RSVPParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_QOSMode(dec, &(val)->qosMode))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->tokenRate))
|
|
return 0;
|
|
(val)->tokenRate += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bucketSize))
|
|
return 0;
|
|
(val)->bucketSize += 1;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->peakRate))
|
|
return 0;
|
|
(val)->peakRate += 1;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->minPoliced))
|
|
return 0;
|
|
(val)->minPoliced += 1;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->maxPktSize))
|
|
return 0;
|
|
(val)->maxPktSize += 1;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_QOSCapability(ASN1encoding_t enc, QOSCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandardData))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_RSVPParameters(enc, &(val)->rsvpParameters))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_ATMParameters(enc, &(val)->atmParameters))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_QOSCapability(ASN1decoding_t dec, QOSCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandardData))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_RSVPParameters(dec, &(val)->rsvpParameters))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_ATMParameters(dec, &(val)->atmParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_QOSCapability(QOSCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandardData);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransportCapability(ASN1encoding_t enc, TransportCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_TransportCapability_qOSCapabilities(enc, &(val)->qOSCapabilities))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_TransportCapability_mediaChannelCapabilities(enc, &(val)->mediaChannelCapabilities))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransportCapability(ASN1decoding_t dec, TransportCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_TransportCapability_qOSCapabilities(dec, &(val)->qOSCapabilities))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_TransportCapability_mediaChannelCapabilities(dec, &(val)->mediaChannelCapabilities))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TransportCapability(TransportCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandard);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_TransportCapability_qOSCapabilities(&(val)->qOSCapabilities);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_TransportCapability_mediaChannelCapabilities(&(val)->mediaChannelCapabilities);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMethod(ASN1encoding_t enc, RedundancyEncodingMethod *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_RTPH263VideoRedundancyEncoding(ee, &(val)->u.rtpH263VideoRedundancyEncoding))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMethod(ASN1decoding_t dec, RedundancyEncodingMethod *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RTPH263VideoRedundancyEncoding(dd, &(val)->u.rtpH263VideoRedundancyEncoding))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMethod(RedundancyEncodingMethod *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 3:
|
|
ASN1Free_RTPH263VideoRedundancyEncoding(&(val)->u.rtpH263VideoRedundancyEncoding);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options(ASN1encoding_t enc, H263Options *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 5, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->advancedIntraCodingMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->deblockingFilterMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->improvedPBFramesMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unlimitedMotionVectors))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fullPictureFreeze))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->partialPictureFreezeAndRelease))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->resizingPartPicFreezeAndRelease))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->fullPictureSnapshot))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->partialPictureSnapshot))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoSegmentTagging))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->progressiveRefinement))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicPictureResizingByFour))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicPictureResizingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicWarpingHalfPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->dynamicWarpingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->independentSegmentDecoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesInOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesInOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesNoOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->slicesNoOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alternateInterVLCMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->modifiedQuantizationMode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->reducedResolutionUpdate))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_TransparencyParameters(enc, &(val)->transparencyParameters))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->separateVideoBackChannel))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_RefPictureSelection(enc, &(val)->refPictureSelection))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_H263Options_customPictureClockFrequency(enc, &(val)->customPictureClockFrequency))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_H263Options_customPictureFormat(enc, &(val)->customPictureFormat))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_H263Options_modeCombos(enc, &(val)->modeCombos))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options(ASN1decoding_t dec, H263Options *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 5, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->advancedIntraCodingMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->deblockingFilterMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->improvedPBFramesMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unlimitedMotionVectors))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fullPictureFreeze))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->partialPictureFreezeAndRelease))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->resizingPartPicFreezeAndRelease))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->fullPictureSnapshot))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->partialPictureSnapshot))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoSegmentTagging))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->progressiveRefinement))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicPictureResizingByFour))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicPictureResizingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicWarpingHalfPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->dynamicWarpingSixteenthPel))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->independentSegmentDecoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesInOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesInOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesNoOrder_NonRect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->slicesNoOrder_Rect))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alternateInterVLCMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->modifiedQuantizationMode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->reducedResolutionUpdate))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_TransparencyParameters(dec, &(val)->transparencyParameters))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->separateVideoBackChannel))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_RefPictureSelection(dec, &(val)->refPictureSelection))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_H263Options_customPictureClockFrequency(dec, &(val)->customPictureClockFrequency))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_H263Options_customPictureFormat(dec, &(val)->customPictureFormat))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_H263Options_modeCombos(dec, &(val)->modeCombos))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options(H263Options *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_H263Options_customPictureClockFrequency(&(val)->customPictureClockFrequency);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_H263Options_customPictureFormat(&(val)->customPictureFormat);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_H263Options_modeCombos(&(val)->modeCombos);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263VideoModeCombos(ASN1encoding_t enc, H263VideoModeCombos *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H263ModeComboFlags(enc, &(val)->h263VideoUncoupledModes))
|
|
return 0;
|
|
if (!ASN1Enc_H263VideoModeCombos_h263VideoCoupledModes(enc, &(val)->h263VideoCoupledModes))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263VideoModeCombos(ASN1decoding_t dec, H263VideoModeCombos *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H263ModeComboFlags(dec, &(val)->h263VideoUncoupledModes))
|
|
return 0;
|
|
if (!ASN1Dec_H263VideoModeCombos_h263VideoCoupledModes(dec, &(val)->h263VideoCoupledModes))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263VideoModeCombos(H263VideoModeCombos *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H263VideoModeCombos_h263VideoCoupledModes(&(val)->h263VideoCoupledModes);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AudioCapability(ASN1encoding_t enc, AudioCapability *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g711Alaw64k - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g711Alaw56k - 1))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g711Ulaw64k - 1))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g711Ulaw56k - 1))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g722_64k - 1))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g722_56k - 1))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g722_48k - 1))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_AudioCapability_g7231(enc, &(val)->u.g7231))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g728 - 1))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g729 - 1))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->u.g729AnnexA - 1))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_IS11172AudioCapability(enc, &(val)->u.is11172AudioCapability))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_IS13818AudioCapability(enc, &(val)->u.is13818AudioCapability))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
ASN1PEREncAlignment(ee);
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->u.g729wAnnexB - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
ASN1PEREncAlignment(ee);
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->u.g729AnnexAwAnnexB - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 17:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_G7231AnnexCCapability(ee, &(val)->u.g7231AnnexCCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 18:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmFullRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 19:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmHalfRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 20:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmEnhancedFullRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AudioCapability(ASN1decoding_t dec, AudioCapability *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g711Alaw64k))
|
|
return 0;
|
|
(val)->u.g711Alaw64k += 1;
|
|
break;
|
|
case 3:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g711Alaw56k))
|
|
return 0;
|
|
(val)->u.g711Alaw56k += 1;
|
|
break;
|
|
case 4:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g711Ulaw64k))
|
|
return 0;
|
|
(val)->u.g711Ulaw64k += 1;
|
|
break;
|
|
case 5:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g711Ulaw56k))
|
|
return 0;
|
|
(val)->u.g711Ulaw56k += 1;
|
|
break;
|
|
case 6:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g722_64k))
|
|
return 0;
|
|
(val)->u.g722_64k += 1;
|
|
break;
|
|
case 7:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g722_56k))
|
|
return 0;
|
|
(val)->u.g722_56k += 1;
|
|
break;
|
|
case 8:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g722_48k))
|
|
return 0;
|
|
(val)->u.g722_48k += 1;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_AudioCapability_g7231(dec, &(val)->u.g7231))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g728))
|
|
return 0;
|
|
(val)->u.g728 += 1;
|
|
break;
|
|
case 11:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g729))
|
|
return 0;
|
|
(val)->u.g729 += 1;
|
|
break;
|
|
case 12:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->u.g729AnnexA))
|
|
return 0;
|
|
(val)->u.g729AnnexA += 1;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_IS11172AudioCapability(dec, &(val)->u.is11172AudioCapability))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_IS13818AudioCapability(dec, &(val)->u.is13818AudioCapability))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1PERDecAlignment(dd);
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->u.g729wAnnexB))
|
|
return 0;
|
|
(val)->u.g729wAnnexB += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1PERDecAlignment(dd);
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->u.g729AnnexAwAnnexB))
|
|
return 0;
|
|
(val)->u.g729AnnexAwAnnexB += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 17:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_G7231AnnexCCapability(dd, &(val)->u.g7231AnnexCCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 18:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmFullRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 19:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmHalfRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 20:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmEnhancedFullRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
//ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
//nik: any number greate than 20 is extension case.
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_AudioCapability(AudioCapability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CompressionType(ASN1encoding_t enc, CompressionType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_V42bis(enc, &(val)->u.v42bis))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CompressionType(ASN1decoding_t dec, CompressionType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_V42bis(dec, &(val)->u.v42bis))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaEncryptionAlgorithm(ASN1encoding_t enc, MediaEncryptionAlgorithm *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.algorithm))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaEncryptionAlgorithm(ASN1decoding_t dec, MediaEncryptionAlgorithm *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.algorithm))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaEncryptionAlgorithm(MediaEncryptionAlgorithm *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1objectidentifier_free(&(val)->u.algorithm);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AuthenticationCapability(ASN1encoding_t enc, AuthenticationCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AuthenticationCapability(ASN1decoding_t dec, AuthenticationCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_AuthenticationCapability(AuthenticationCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandard);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IntegrityCapability(ASN1encoding_t enc, IntegrityCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IntegrityCapability(ASN1decoding_t dec, IntegrityCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_IntegrityCapability(IntegrityCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandard);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL1MParameters(ASN1encoding_t enc, H223AL1MParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters_transferMode(enc, &(val)->transferMode))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters_headerFEC(enc, &(val)->headerFEC))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters_crcLength(enc, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->rcpcCodeRate - 8))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters_arqType(enc, &(val)->arqType))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alpduInterleaving))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alsduSplitting))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL1MParameters(ASN1decoding_t dec, H223AL1MParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL1MParameters_transferMode(dec, &(val)->transferMode))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL1MParameters_headerFEC(dec, &(val)->headerFEC))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL1MParameters_crcLength(dec, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->rcpcCodeRate))
|
|
return 0;
|
|
(val)->rcpcCodeRate += 8;
|
|
if (!ASN1Dec_H223AL1MParameters_arqType(dec, &(val)->arqType))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alpduInterleaving))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alsduSplitting))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223AL3MParameters(ASN1encoding_t enc, H223AL3MParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL3MParameters_headerFormat(enc, &(val)->headerFormat))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL3MParameters_crcLength(enc, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->rcpcCodeRate - 8))
|
|
return 0;
|
|
if (!ASN1Enc_H223AL3MParameters_arqType(enc, &(val)->arqType))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->alpduInterleaving))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223AL3MParameters(ASN1decoding_t dec, H223AL3MParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL3MParameters_headerFormat(dec, &(val)->headerFormat))
|
|
return 0;
|
|
if (!ASN1Dec_H223AL3MParameters_crcLength(dec, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->rcpcCodeRate))
|
|
return 0;
|
|
(val)->rcpcCodeRate += 8;
|
|
if (!ASN1Dec_H223AL3MParameters_arqType(dec, &(val)->arqType))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->alpduInterleaving))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76HDLCParameters(ASN1encoding_t enc, V76HDLCParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_CRCLength(enc, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->n401 - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->loopbackTestProcedure))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76HDLCParameters(ASN1decoding_t dec, V76HDLCParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_CRCLength(dec, &(val)->crcLength))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->n401))
|
|
return 0;
|
|
(val)->n401 += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->loopbackTestProcedure))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UnicastAddress(ASN1encoding_t enc, UnicastAddress *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_UnicastAddress_iPAddress(enc, &(val)->u.iPAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_UnicastAddress_iPXAddress(enc, &(val)->u.iPXAddress))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_UnicastAddress_iP6Address(enc, &(val)->u.iP6Address))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_UnicastAddress_iPSourceRouteAddress(enc, &(val)->u.iPSourceRouteAddress))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(ee, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 7:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(ee, &(val)->u.nonStandardAddress))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UnicastAddress(ASN1decoding_t dec, UnicastAddress *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_UnicastAddress_iPAddress(dec, &(val)->u.iPAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_UnicastAddress_iPXAddress(dec, &(val)->u.iPXAddress))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_UnicastAddress_iP6Address(dec, &(val)->u.iP6Address))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_UnicastAddress_iPSourceRouteAddress(dec, &(val)->u.iPSourceRouteAddress))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dd, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 7:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dd, &(val)->u.nonStandardAddress))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UnicastAddress(UnicastAddress *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_UnicastAddress_iPAddress(&(val)->u.iPAddress);
|
|
break;
|
|
case 2:
|
|
ASN1Free_UnicastAddress_iPXAddress(&(val)->u.iPXAddress);
|
|
break;
|
|
case 3:
|
|
ASN1Free_UnicastAddress_iP6Address(&(val)->u.iP6Address);
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
ASN1Free_UnicastAddress_iPSourceRouteAddress(&(val)->u.iPSourceRouteAddress);
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandardAddress);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MulticastAddress(ASN1encoding_t enc, MulticastAddress *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_MulticastAddress_iPAddress(enc, &(val)->u.iPAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MulticastAddress_iP6Address(enc, &(val)->u.iP6Address))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(ee, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 4:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(ee, &(val)->u.nonStandardAddress))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MulticastAddress(ASN1decoding_t dec, MulticastAddress *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_MulticastAddress_iPAddress(dec, &(val)->u.iPAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MulticastAddress_iP6Address(dec, &(val)->u.iP6Address))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dd, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 4:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dd, &(val)->u.nonStandardAddress))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MulticastAddress(MulticastAddress *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_MulticastAddress_iPAddress(&(val)->u.iPAddress);
|
|
break;
|
|
case 2:
|
|
ASN1Free_MulticastAddress_iP6Address(&(val)->u.iP6Address);
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandardAddress);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionSync(ASN1encoding_t enc, EncryptionSync *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->synchFlag))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->h235Key, 1, 65535, 16))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_EncryptionSync_escrowentry(enc, &(val)->escrowentry))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionSync(ASN1decoding_t dec, EncryptionSync *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->synchFlag))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->h235Key, 1, 65535, 16))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_EncryptionSync_escrowentry(dec, &(val)->escrowentry))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionSync(EncryptionSync *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandard);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_EncryptionSync_escrowentry(&(val)->escrowentry);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestChannelClose(ASN1encoding_t enc, RequestChannelClose *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x40;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_QOSCapability(ee, &(val)->qosCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1Enc_RequestChannelClose_reason(ee, &(val)->reason))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestChannelClose(ASN1decoding_t dec, RequestChannelClose *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_QOSCapability(dd, &(val)->qosCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RequestChannelClose_reason(dd, &(val)->reason))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestChannelClose(RequestChannelClose *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_QOSCapability(&(val)->qosCapability);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntryDescriptor(ASN1encoding_t enc, MultiplexEntryDescriptor *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->multiplexTableEntryNumber - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_MultiplexEntryDescriptor_elementList(enc, &(val)->elementList))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntryDescriptor(ASN1decoding_t dec, MultiplexEntryDescriptor *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 4, &(val)->multiplexTableEntryNumber))
|
|
return 0;
|
|
(val)->multiplexTableEntryNumber += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_MultiplexEntryDescriptor_elementList(dec, &(val)->elementList))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntryDescriptor(MultiplexEntryDescriptor *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_MultiplexEntryDescriptor_elementList(&(val)->elementList);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySendReject(ASN1encoding_t enc, MultiplexEntrySendReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Enc_MultiplexEntrySendReject_rejectionDescriptions(enc, &(val)->rejectionDescriptions))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySendReject(ASN1decoding_t dec, MultiplexEntrySendReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1Dec_MultiplexEntrySendReject_rejectionDescriptions(dec, &(val)->rejectionDescriptions))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySendReject(MultiplexEntrySendReject *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexEntrySendReject_rejectionDescriptions(&(val)->rejectionDescriptions);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMultiplexEntryReject(ASN1encoding_t enc, RequestMultiplexEntryReject *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntryReject_entryNumbers(enc, &(val)->entryNumbers))
|
|
return 0;
|
|
if (!ASN1Enc_RequestMultiplexEntryReject_rejectionDescriptions(enc, &(val)->rejectionDescriptions))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMultiplexEntryReject(ASN1decoding_t dec, RequestMultiplexEntryReject *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMultiplexEntryReject_entryNumbers(dec, &(val)->entryNumbers))
|
|
return 0;
|
|
if (!ASN1Dec_RequestMultiplexEntryReject_rejectionDescriptions(dec, &(val)->rejectionDescriptions))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMultiplexEntryReject(RequestMultiplexEntryReject *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestMultiplexEntryReject_entryNumbers(&(val)->entryNumbers);
|
|
ASN1Free_RequestMultiplexEntryReject_rejectionDescriptions(&(val)->rejectionDescriptions);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263VideoMode(ASN1encoding_t enc, H263VideoMode *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x80;
|
|
y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1Enc_H263VideoMode_resolution(enc, &(val)->resolution))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->pbFrames))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 3, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->errorCompensation))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1Enc_EnhancementLayerInfo(ee, &(val)->enhancementLayerInfo))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x20) {
|
|
if (!ASN1Enc_H263Options(ee, &(val)->h263Options))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263VideoMode(ASN1decoding_t dec, H263VideoMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H263VideoMode_resolution(dec, &(val)->resolution))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bitRate))
|
|
return 0;
|
|
(val)->bitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->pbFrames))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->errorCompensation))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EnhancementLayerInfo(dd, &(val)->enhancementLayerInfo))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H263Options(dd, &(val)->h263Options))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263VideoMode(H263VideoMode *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_EnhancementLayerInfo(&(val)->enhancementLayerInfo);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_H263Options(&(val)->h263Options);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AudioMode(ASN1encoding_t enc, AudioMode *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_AudioMode_g7231(enc, &(val)->u.g7231))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_IS11172AudioMode(enc, &(val)->u.is11172AudioMode))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_IS13818AudioMode(enc, &(val)->u.is13818AudioMode))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
ASN1PEREncAlignment(ee);
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->u.g729wAnnexB - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
ASN1PEREncAlignment(ee);
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->u.g729AnnexAwAnnexB - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 17:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_G7231AnnexCMode(ee, &(val)->u.g7231AnnexCMode))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 18:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmFullRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 19:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmHalfRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 20:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_GSMAudioCapability(ee, &(val)->u.gsmEnhancedFullRate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AudioMode(ASN1decoding_t dec, AudioMode *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_AudioMode_g7231(dec, &(val)->u.g7231))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_IS11172AudioMode(dec, &(val)->u.is11172AudioMode))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_IS13818AudioMode(dec, &(val)->u.is13818AudioMode))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1PERDecAlignment(dd);
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->u.g729wAnnexB))
|
|
return 0;
|
|
(val)->u.g729wAnnexB += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1PERDecAlignment(dd);
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->u.g729AnnexAwAnnexB))
|
|
return 0;
|
|
(val)->u.g729AnnexAwAnnexB += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 17:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_G7231AnnexCMode(dd, &(val)->u.g7231AnnexCMode))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 18:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmFullRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 19:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmHalfRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 20:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_GSMAudioCapability(dd, &(val)->u.gsmEnhancedFullRate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_AudioMode(AudioMode *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionMode(ASN1encoding_t enc, EncryptionMode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionMode(ASN1decoding_t dec, EncryptionMode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionMode(EncryptionMode *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceRequest(ASN1encoding_t enc, ConferenceRequest *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.dropTerminal))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.requestTerminalID))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 10:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceRequest_requestTerminalCertificate(ee, &(val)->u.requestTerminalCertificate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->u.broadcastMyLogicalChannel - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(ee, &(val)->u.makeTerminalBroadcaster))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 14:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_TerminalLabel(ee, &(val)->u.sendThisSource))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_RemoteMCRequest(ee, &(val)->u.remoteMCRequest))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceRequest(ASN1decoding_t dec, ConferenceRequest *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.dropTerminal))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.requestTerminalID))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 10:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceRequest_requestTerminalCertificate(dd, &(val)->u.requestTerminalCertificate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->u.broadcastMyLogicalChannel))
|
|
return 0;
|
|
(val)->u.broadcastMyLogicalChannel += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dd, &(val)->u.makeTerminalBroadcaster))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 14:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dd, &(val)->u.sendThisSource))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RemoteMCRequest(dd, &(val)->u.remoteMCRequest))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceRequest(ConferenceRequest *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 11:
|
|
ASN1Free_ConferenceRequest_requestTerminalCertificate(&(val)->u.requestTerminalCertificate);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CertSelectionCriteria(ASN1encoding_t enc, PCertSelectionCriteria *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CertSelectionCriteria_ElmFn, 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CertSelectionCriteria_ElmFn(ASN1encoding_t enc, PCertSelectionCriteria val)
|
|
{
|
|
if (!ASN1Enc_Criteria(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CertSelectionCriteria(ASN1decoding_t dec, PCertSelectionCriteria *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CertSelectionCriteria_ElmFn, sizeof(**val), 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CertSelectionCriteria_ElmFn(ASN1decoding_t dec, PCertSelectionCriteria val)
|
|
{
|
|
if (!ASN1Dec_Criteria(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CertSelectionCriteria(PCertSelectionCriteria *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CertSelectionCriteria_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CertSelectionCriteria_ElmFn(PCertSelectionCriteria val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Criteria(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceResponse(ASN1encoding_t enc, ConferenceResponse *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_ConferenceResponse_mCTerminalIDResponse(enc, &(val)->u.mCTerminalIDResponse))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ConferenceResponse_terminalIDResponse(enc, &(val)->u.terminalIDResponse))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_ConferenceResponse_conferenceIDResponse(enc, &(val)->u.conferenceIDResponse))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_ConferenceResponse_passwordResponse(enc, &(val)->u.passwordResponse))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_ConferenceResponse_terminalListResponse(enc, &(val)->u.terminalListResponse))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_ConferenceResponse_makeMeChairResponse(enc, &(val)->u.makeMeChairResponse))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_extensionAddressResponse(ee, &(val)->u.extensionAddressResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 10:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_chairTokenOwnerResponse(ee, &(val)->u.chairTokenOwnerResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_terminalCertificateResponse(ee, &(val)->u.terminalCertificateResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_broadcastMyLogicalChannelResponse(ee, &(val)->u.broadcastMyLogicalChannelResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_makeTerminalBroadcasterResponse(ee, &(val)->u.makeTerminalBroadcasterResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 14:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse_sendThisSourceResponse(ee, &(val)->u.sendThisSourceResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_RequestAllTerminalIDsResponse(ee, &(val)->u.requestAllTerminalIDsResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_RemoteMCResponse(ee, &(val)->u.remoteMCResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceResponse(ASN1decoding_t dec, ConferenceResponse *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_ConferenceResponse_mCTerminalIDResponse(dec, &(val)->u.mCTerminalIDResponse))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ConferenceResponse_terminalIDResponse(dec, &(val)->u.terminalIDResponse))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_ConferenceResponse_conferenceIDResponse(dec, &(val)->u.conferenceIDResponse))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_ConferenceResponse_passwordResponse(dec, &(val)->u.passwordResponse))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_ConferenceResponse_terminalListResponse(dec, &(val)->u.terminalListResponse))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_ConferenceResponse_makeMeChairResponse(dec, &(val)->u.makeMeChairResponse))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_extensionAddressResponse(dd, &(val)->u.extensionAddressResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 10:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_chairTokenOwnerResponse(dd, &(val)->u.chairTokenOwnerResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_terminalCertificateResponse(dd, &(val)->u.terminalCertificateResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_broadcastMyLogicalChannelResponse(dd, &(val)->u.broadcastMyLogicalChannelResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_makeTerminalBroadcasterResponse(dd, &(val)->u.makeTerminalBroadcasterResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 14:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse_sendThisSourceResponse(dd, &(val)->u.sendThisSourceResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RequestAllTerminalIDsResponse(dd, &(val)->u.requestAllTerminalIDsResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RemoteMCResponse(dd, &(val)->u.remoteMCResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceResponse(ConferenceResponse *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_ConferenceResponse_mCTerminalIDResponse(&(val)->u.mCTerminalIDResponse);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ConferenceResponse_terminalIDResponse(&(val)->u.terminalIDResponse);
|
|
break;
|
|
case 3:
|
|
ASN1Free_ConferenceResponse_conferenceIDResponse(&(val)->u.conferenceIDResponse);
|
|
break;
|
|
case 4:
|
|
ASN1Free_ConferenceResponse_passwordResponse(&(val)->u.passwordResponse);
|
|
break;
|
|
case 5:
|
|
ASN1Free_ConferenceResponse_terminalListResponse(&(val)->u.terminalListResponse);
|
|
break;
|
|
case 9:
|
|
ASN1Free_ConferenceResponse_extensionAddressResponse(&(val)->u.extensionAddressResponse);
|
|
break;
|
|
case 10:
|
|
ASN1Free_ConferenceResponse_chairTokenOwnerResponse(&(val)->u.chairTokenOwnerResponse);
|
|
break;
|
|
case 11:
|
|
ASN1Free_ConferenceResponse_terminalCertificateResponse(&(val)->u.terminalCertificateResponse);
|
|
break;
|
|
case 15:
|
|
ASN1Free_RequestAllTerminalIDsResponse(&(val)->u.requestAllTerminalIDsResponse);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EndSessionCommand(ASN1encoding_t enc, EndSessionCommand *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_EndSessionCommand_gstnOptions(enc, &(val)->u.gstnOptions))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_EndSessionCommand_isdnOptions(ee, &(val)->u.isdnOptions))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EndSessionCommand(ASN1decoding_t dec, EndSessionCommand *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_EndSessionCommand_gstnOptions(dec, &(val)->u.gstnOptions))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EndSessionCommand_isdnOptions(dd, &(val)->u.isdnOptions))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EndSessionCommand(EndSessionCommand *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCommand(ASN1encoding_t enc, ConferenceCommand *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.broadcastMyLogicalChannel - 1))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.cancelBroadcastMyLogicalChannel - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.makeTerminalBroadcaster))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->u.sendThisSource))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_SubstituteConferenceIDCommand(ee, &(val)->u.substituteConferenceIDCommand))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCommand(ASN1decoding_t dec, ConferenceCommand *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.broadcastMyLogicalChannel))
|
|
return 0;
|
|
(val)->u.broadcastMyLogicalChannel += 1;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.cancelBroadcastMyLogicalChannel))
|
|
return 0;
|
|
(val)->u.cancelBroadcastMyLogicalChannel += 1;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.makeTerminalBroadcaster))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->u.sendThisSource))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_SubstituteConferenceIDCommand(dd, &(val)->u.substituteConferenceIDCommand))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCommand(ConferenceCommand *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 8:
|
|
ASN1Free_SubstituteConferenceIDCommand(&(val)->u.substituteConferenceIDCommand);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication_userInputSupportIndication(ASN1encoding_t enc, UserInputIndication_userInputSupportIndication *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication_userInputSupportIndication(ASN1decoding_t dec, UserInputIndication_userInputSupportIndication *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserInputIndication_userInputSupportIndication(UserInputIndication_userInputSupportIndication *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication_type(ASN1encoding_t enc, MiscellaneousIndication_type *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->u.videoTemporalSpatialTradeOff))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousIndication_type_videoNotDecodedMBs(ee, &(val)->u.videoNotDecodedMBs))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_TransportCapability(ee, &(val)->u.transportCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication_type(ASN1decoding_t dec, MiscellaneousIndication_type *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->u.videoTemporalSpatialTradeOff))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_MiscellaneousIndication_type_videoNotDecodedMBs(dd, &(val)->u.videoNotDecodedMBs))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TransportCapability(dd, &(val)->u.transportCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MiscellaneousIndication_type(MiscellaneousIndication_type *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 12:
|
|
ASN1Free_TransportCapability(&(val)->u.transportCapability);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand_type(ASN1encoding_t enc, MiscellaneousCommand_type *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_MiscellaneousCommand_type_videoFastUpdateGOB(enc, &(val)->u.videoFastUpdateGOB))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->u.videoTemporalSpatialTradeOff))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousCommand_type_videoFastUpdateMB(ee, &(val)->u.videoFastUpdateMB))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->u.maxH223MUXPDUsize - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_EncryptionSync(ee, &(val)->u.encryptionUpdate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 14:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_EncryptionUpdateRequest(ee, &(val)->u.encryptionUpdateRequest))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 17:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousCommand_type_progressiveRefinementStart(ee, &(val)->u.progressiveRefinementStart))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 18:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 19:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand_type(ASN1decoding_t dec, MiscellaneousCommand_type *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_MiscellaneousCommand_type_videoFastUpdateGOB(dec, &(val)->u.videoFastUpdateGOB))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->u.videoTemporalSpatialTradeOff))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_MiscellaneousCommand_type_videoFastUpdateMB(dd, &(val)->u.videoFastUpdateMB))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->u.maxH223MUXPDUsize))
|
|
return 0;
|
|
(val)->u.maxH223MUXPDUsize += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionSync(dd, &(val)->u.encryptionUpdate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 14:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionUpdateRequest(dd, &(val)->u.encryptionUpdateRequest))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 17:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_MiscellaneousCommand_type_progressiveRefinementStart(dd, &(val)->u.progressiveRefinementStart))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 18:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 19:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MiscellaneousCommand_type(MiscellaneousCommand_type *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 13:
|
|
ASN1Free_EncryptionSync(&(val)->u.encryptionUpdate);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionCommand_encryptionAlgorithmID(ASN1encoding_t enc, EncryptionCommand_encryptionAlgorithmID *val)
|
|
{
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->h233AlgorithmIdentifier))
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->associatedAlgorithm))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionCommand_encryptionAlgorithmID(ASN1decoding_t dec, EncryptionCommand_encryptionAlgorithmID *val)
|
|
{
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->h233AlgorithmIdentifier))
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->associatedAlgorithm))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionCommand_encryptionAlgorithmID(EncryptionCommand_encryptionAlgorithmID *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&(val)->associatedAlgorithm);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry_nonStandard(ASN1encoding_t enc, PCommunicationModeTableEntry_nonStandard *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CommunicationModeTableEntry_nonStandard_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry_nonStandard_ElmFn(ASN1encoding_t enc, PCommunicationModeTableEntry_nonStandard val)
|
|
{
|
|
if (!ASN1Enc_NonStandardParameter(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry_nonStandard(ASN1decoding_t dec, PCommunicationModeTableEntry_nonStandard *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CommunicationModeTableEntry_nonStandard_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry_nonStandard_ElmFn(ASN1decoding_t dec, PCommunicationModeTableEntry_nonStandard val)
|
|
{
|
|
if (!ASN1Dec_NonStandardParameter(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry_nonStandard(PCommunicationModeTableEntry_nonStandard *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CommunicationModeTableEntry_nonStandard_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry_nonStandard_ElmFn(PCommunicationModeTableEntry_nonStandard val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMode_secondaryEncoding(ASN1encoding_t enc, RedundancyEncodingMode_secondaryEncoding *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_AudioMode(enc, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMode_secondaryEncoding(ASN1decoding_t dec, RedundancyEncodingMode_secondaryEncoding *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_AudioMode(dec, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMode_secondaryEncoding(RedundancyEncodingMode_secondaryEncoding *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_AudioMode(&(val)->u.audioData);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters_adaptationLayerType(ASN1encoding_t enc, H223ModeParameters_adaptationLayerType *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_H223ModeParameters_adaptationLayerType_al3(enc, &(val)->u.al3))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters(ee, &(val)->u.al1M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL2MParameters(ee, &(val)->u.al2M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL3MParameters(ee, &(val)->u.al3M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters_adaptationLayerType(ASN1decoding_t dec, H223ModeParameters_adaptationLayerType *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_H223ModeParameters_adaptationLayerType_al3(dec, &(val)->u.al3))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL1MParameters(dd, &(val)->u.al1M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL2MParameters(dd, &(val)->u.al2M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL3MParameters(dd, &(val)->u.al3M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H223ModeParameters_adaptationLayerType(H223ModeParameters_adaptationLayerType *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySend_multiplexEntryDescriptors(ASN1encoding_t enc, PMultiplexEntrySend_multiplexEntryDescriptors *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn, 1, 15, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn(ASN1encoding_t enc, PMultiplexEntrySend_multiplexEntryDescriptors val)
|
|
{
|
|
if (!ASN1Enc_MultiplexEntryDescriptor(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySend_multiplexEntryDescriptors(ASN1decoding_t dec, PMultiplexEntrySend_multiplexEntryDescriptors *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn, sizeof(**val), 1, 15, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn(ASN1decoding_t dec, PMultiplexEntrySend_multiplexEntryDescriptors val)
|
|
{
|
|
if (!ASN1Dec_MultiplexEntryDescriptor(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySend_multiplexEntryDescriptors(PMultiplexEntrySend_multiplexEntryDescriptors *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexEntrySend_multiplexEntryDescriptors_ElmFn(PMultiplexEntrySend_multiplexEntryDescriptors val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultiplexEntryDescriptor(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelAckParameters_nonStandard(ASN1encoding_t enc, PH2250LogicalChannelAckParameters_nonStandard *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H2250LogicalChannelAckParameters_nonStandard_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelAckParameters_nonStandard_ElmFn(ASN1encoding_t enc, PH2250LogicalChannelAckParameters_nonStandard val)
|
|
{
|
|
if (!ASN1Enc_NonStandardParameter(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelAckParameters_nonStandard(ASN1decoding_t dec, PH2250LogicalChannelAckParameters_nonStandard *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H2250LogicalChannelAckParameters_nonStandard_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelAckParameters_nonStandard_ElmFn(ASN1decoding_t dec, PH2250LogicalChannelAckParameters_nonStandard val)
|
|
{
|
|
if (!ASN1Dec_NonStandardParameter(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelAckParameters_nonStandard(PH2250LogicalChannelAckParameters_nonStandard *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H2250LogicalChannelAckParameters_nonStandard_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelAckParameters_nonStandard_ElmFn(PH2250LogicalChannelAckParameters_nonStandard val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPPayloadType_payloadDescriptor(ASN1encoding_t enc, RTPPayloadType_payloadDescriptor *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandardIdentifier))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.rfc_number - 1))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.oid))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPPayloadType_payloadDescriptor(ASN1decoding_t dec, RTPPayloadType_payloadDescriptor *val)
|
|
{
|
|
ASN1uint32_t x;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandardIdentifier))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.rfc_number))
|
|
return 0;
|
|
(val)->u.rfc_number += 1;
|
|
} else {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecFragmentedLength(dec, &l))
|
|
return 0;
|
|
if (!ASN1PERDecSkipBits(dec, l * 8))
|
|
return 0;
|
|
}
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.oid))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPPayloadType_payloadDescriptor(RTPPayloadType_payloadDescriptor *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandardIdentifier);
|
|
break;
|
|
case 3:
|
|
ASN1objectidentifier_free(&(val)->u.oid);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters_nonStandard(ASN1encoding_t enc, PH2250LogicalChannelParameters_nonStandard *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H2250LogicalChannelParameters_nonStandard_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters_nonStandard_ElmFn(ASN1encoding_t enc, PH2250LogicalChannelParameters_nonStandard val)
|
|
{
|
|
if (!ASN1Enc_NonStandardParameter(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters_nonStandard(ASN1decoding_t dec, PH2250LogicalChannelParameters_nonStandard *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H2250LogicalChannelParameters_nonStandard_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters_nonStandard_ElmFn(ASN1decoding_t dec, PH2250LogicalChannelParameters_nonStandard val)
|
|
{
|
|
if (!ASN1Dec_NonStandardParameter(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters_nonStandard(PH2250LogicalChannelParameters_nonStandard *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H2250LogicalChannelParameters_nonStandard_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters_nonStandard_ElmFn(PH2250LogicalChannelParameters_nonStandard val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters_adaptationLayerType(ASN1encoding_t enc, H223LogicalChannelParameters_adaptationLayerType *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_H223LogicalChannelParameters_adaptationLayerType_al3(enc, &(val)->u.al3))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL1MParameters(ee, &(val)->u.al1M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL2MParameters(ee, &(val)->u.al2M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223AL3MParameters(ee, &(val)->u.al3M))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters_adaptationLayerType(ASN1decoding_t dec, H223LogicalChannelParameters_adaptationLayerType *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_H223LogicalChannelParameters_adaptationLayerType_al3(dec, &(val)->u.al3))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL1MParameters(dd, &(val)->u.al1M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL2MParameters(dd, &(val)->u.al2M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223AL3MParameters(dd, &(val)->u.al3M))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H223LogicalChannelParameters_adaptationLayerType(H223LogicalChannelParameters_adaptationLayerType *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCapability_nonStandardData(ASN1encoding_t enc, PConferenceCapability_nonStandardData *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ConferenceCapability_nonStandardData_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCapability_nonStandardData_ElmFn(ASN1encoding_t enc, PConferenceCapability_nonStandardData val)
|
|
{
|
|
if (!ASN1Enc_NonStandardParameter(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCapability_nonStandardData(ASN1decoding_t dec, PConferenceCapability_nonStandardData *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ConferenceCapability_nonStandardData_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCapability_nonStandardData_ElmFn(ASN1decoding_t dec, PConferenceCapability_nonStandardData val)
|
|
{
|
|
if (!ASN1Dec_NonStandardParameter(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCapability_nonStandardData(PConferenceCapability_nonStandardData *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ConferenceCapability_nonStandardData_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCapability_nonStandardData_ElmFn(PConferenceCapability_nonStandardData val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputCapability_nonStandard(ASN1encoding_t enc, UserInputCapability_nonStandard *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PEREncBitVal(enc, 4, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_NonStandardParameter(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputCapability_nonStandard(ASN1decoding_t dec, UserInputCapability_nonStandard *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (!ASN1PERDecU32Val(dec, 4, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_NonStandardParameter(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserInputCapability_nonStandard(UserInputCapability_nonStandard *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1Free_NonStandardParameter(&(val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataProtocolCapability_v76wCompression(ASN1encoding_t enc, DataProtocolCapability_v76wCompression *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_CompressionType(enc, &(val)->u.transmitCompression))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_CompressionType(enc, &(val)->u.receiveCompression))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_CompressionType(enc, &(val)->u.transmitAndReceiveCompression))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataProtocolCapability_v76wCompression(ASN1decoding_t dec, DataProtocolCapability_v76wCompression *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_CompressionType(dec, &(val)->u.transmitCompression))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_CompressionType(dec, &(val)->u.receiveCompression))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_CompressionType(dec, &(val)->u.transmitAndReceiveCompression))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_modeCombos(ASN1encoding_t enc, PH263Options_modeCombos *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H263Options_modeCombos_ElmFn, 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263Options_modeCombos_ElmFn(ASN1encoding_t enc, PH263Options_modeCombos val)
|
|
{
|
|
if (!ASN1Enc_H263VideoModeCombos(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_modeCombos(ASN1decoding_t dec, PH263Options_modeCombos *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H263Options_modeCombos_ElmFn, sizeof(**val), 1, 16, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263Options_modeCombos_ElmFn(ASN1decoding_t dec, PH263Options_modeCombos val)
|
|
{
|
|
if (!ASN1Dec_H263VideoModeCombos(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_modeCombos(PH263Options_modeCombos *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H263Options_modeCombos_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263Options_modeCombos_ElmFn(PH263Options_modeCombos val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H263VideoModeCombos(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransportCapability_qOSCapabilities(ASN1encoding_t enc, PTransportCapability_qOSCapabilities *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_TransportCapability_qOSCapabilities_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransportCapability_qOSCapabilities_ElmFn(ASN1encoding_t enc, PTransportCapability_qOSCapabilities val)
|
|
{
|
|
if (!ASN1Enc_QOSCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransportCapability_qOSCapabilities(ASN1decoding_t dec, PTransportCapability_qOSCapabilities *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_TransportCapability_qOSCapabilities_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransportCapability_qOSCapabilities_ElmFn(ASN1decoding_t dec, PTransportCapability_qOSCapabilities val)
|
|
{
|
|
if (!ASN1Dec_QOSCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TransportCapability_qOSCapabilities(PTransportCapability_qOSCapabilities *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_TransportCapability_qOSCapabilities_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TransportCapability_qOSCapabilities_ElmFn(PTransportCapability_qOSCapabilities val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_QOSCapability(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardMessage(ASN1encoding_t enc, NonStandardMessage *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->nonStandardData))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardMessage(ASN1decoding_t dec, NonStandardMessage *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->nonStandardData))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NonStandardMessage(NonStandardMessage *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&(val)->nonStandardData);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingCapability(ASN1encoding_t enc, RedundancyEncodingCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_RedundancyEncodingMethod(enc, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->primaryEncoding - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_RedundancyEncodingCapability_secondaryEncoding(enc, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingCapability(ASN1decoding_t dec, RedundancyEncodingCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_RedundancyEncodingMethod(dec, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->primaryEncoding))
|
|
return 0;
|
|
(val)->primaryEncoding += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_RedundancyEncodingCapability_secondaryEncoding(dec, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingCapability(RedundancyEncodingCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RedundancyEncodingMethod(&(val)->redundancyEncodingMethod);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_RedundancyEncodingCapability_secondaryEncoding(&(val)->secondaryEncoding);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H263VideoCapability(ASN1encoding_t enc, H263VideoCapability *val)
|
|
{
|
|
ASN1octet_t o[2];
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 2);
|
|
o[1] |= 0x4;
|
|
y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 7, o))
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->sqcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->qcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x20) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cifMPI - 1))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x10) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cif4MPI - 1))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cif16MPI - 1))
|
|
return 0;
|
|
}
|
|
l = ASN1uint32_uoctets((val)->maxBitRate - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->maxBitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->pbFrames))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if (o[0] & 0x4) {
|
|
l = ASN1uint32_uoctets((val)->hrd_B);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->hrd_B))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x2) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->bppMaxKb))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[1] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->slowSqcifMPI - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->slowQcifMPI - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x20) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->slowCifMPI - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x10) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->slowCif4MPI - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x8) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->slowCif16MPI - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x4) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->errorCompensation))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x2) {
|
|
if (!ASN1Enc_EnhancementLayerInfo(ee, &(val)->enhancementLayerInfo))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x1) {
|
|
if (!ASN1Enc_H263Options(ee, &(val)->h263Options))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H263VideoCapability(ASN1decoding_t dec, H263VideoCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->sqcifMPI))
|
|
return 0;
|
|
(val)->sqcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->qcifMPI))
|
|
return 0;
|
|
(val)->qcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cifMPI))
|
|
return 0;
|
|
(val)->cifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cif4MPI))
|
|
return 0;
|
|
(val)->cif4MPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cif16MPI))
|
|
return 0;
|
|
(val)->cif16MPI += 1;
|
|
}
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->maxBitRate))
|
|
return 0;
|
|
(val)->maxBitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->advancedPrediction))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->pbFrames))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->hrd_B))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->bppMaxKb))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->slowSqcifMPI))
|
|
return 0;
|
|
(val)->slowSqcifMPI += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->slowQcifMPI))
|
|
return 0;
|
|
(val)->slowQcifMPI += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->slowCifMPI))
|
|
return 0;
|
|
(val)->slowCifMPI += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x10) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->slowCif4MPI))
|
|
return 0;
|
|
(val)->slowCif4MPI += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x8) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->slowCif16MPI))
|
|
return 0;
|
|
(val)->slowCif16MPI += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x4) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->errorCompensation))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x2) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EnhancementLayerInfo(dd, &(val)->enhancementLayerInfo))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x1) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H263Options(dd, &(val)->h263Options))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H263VideoCapability(H263VideoCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[1] & 0x2) {
|
|
ASN1Free_EnhancementLayerInfo(&(val)->enhancementLayerInfo);
|
|
}
|
|
if ((val)->o[1] & 0x1) {
|
|
ASN1Free_H263Options(&(val)->h263Options);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementOptions(ASN1encoding_t enc, EnhancementOptions *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 11, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->sqcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->qcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cif4MPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->cif16MPI - 1))
|
|
return 0;
|
|
}
|
|
l = ASN1uint32_uoctets((val)->maxBitRate - 1);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->maxBitRate - 1))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->slowSqcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->slowQcifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->slowCifMPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->slowCif4MPI - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->slowCif16MPI - 1))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->errorCompensation))
|
|
return 0;
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1Enc_H263Options(enc, &(val)->h263Options))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementOptions(ASN1decoding_t dec, EnhancementOptions *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 11, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->sqcifMPI))
|
|
return 0;
|
|
(val)->sqcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->qcifMPI))
|
|
return 0;
|
|
(val)->qcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cifMPI))
|
|
return 0;
|
|
(val)->cifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cif4MPI))
|
|
return 0;
|
|
(val)->cif4MPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->cif16MPI))
|
|
return 0;
|
|
(val)->cif16MPI += 1;
|
|
}
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->maxBitRate))
|
|
return 0;
|
|
(val)->maxBitRate += 1;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->unrestrictedVector))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->arithmeticCoding))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->temporalSpatialTradeOffCapability))
|
|
return 0;
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->slowSqcifMPI))
|
|
return 0;
|
|
(val)->slowSqcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->slowQcifMPI))
|
|
return 0;
|
|
(val)->slowQcifMPI += 1;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->slowCifMPI))
|
|
return 0;
|
|
(val)->slowCifMPI += 1;
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->slowCif4MPI))
|
|
return 0;
|
|
(val)->slowCif4MPI += 1;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->slowCif16MPI))
|
|
return 0;
|
|
(val)->slowCif16MPI += 1;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->errorCompensation))
|
|
return 0;
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1Dec_H263Options(dec, &(val)->h263Options))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementOptions(EnhancementOptions *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[1] & 0x20) {
|
|
ASN1Free_H263Options(&(val)->h263Options);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataProtocolCapability(ASN1encoding_t enc, DataProtocolCapability *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 10:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_DataProtocolCapability_v76wCompression(ee, &(val)->u.v76wCompression))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataProtocolCapability(ASN1decoding_t dec, DataProtocolCapability *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 7:
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 10:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_DataProtocolCapability_v76wCompression(dd, &(val)->u.v76wCompression))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataProtocolCapability(DataProtocolCapability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionAuthenticationAndIntegrity(ASN1encoding_t enc, EncryptionAuthenticationAndIntegrity *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_EncryptionCapability(enc, &(val)->encryptionCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_AuthenticationCapability(enc, &(val)->authenticationCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_IntegrityCapability(enc, &(val)->integrityCapability))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionAuthenticationAndIntegrity(ASN1decoding_t dec, EncryptionAuthenticationAndIntegrity *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_EncryptionCapability(dec, &(val)->encryptionCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_AuthenticationCapability(dec, &(val)->authenticationCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_IntegrityCapability(dec, &(val)->integrityCapability))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionAuthenticationAndIntegrity(EncryptionAuthenticationAndIntegrity *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_EncryptionCapability(&(val)->encryptionCapability);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_AuthenticationCapability(&(val)->authenticationCapability);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_IntegrityCapability(&(val)->integrityCapability);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionCapability(ASN1encoding_t enc, PEncryptionCapability *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_EncryptionCapability_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionCapability_ElmFn(ASN1encoding_t enc, PEncryptionCapability val)
|
|
{
|
|
if (!ASN1Enc_MediaEncryptionAlgorithm(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionCapability(ASN1decoding_t dec, PEncryptionCapability *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_EncryptionCapability_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionCapability_ElmFn(ASN1decoding_t dec, PEncryptionCapability val)
|
|
{
|
|
if (!ASN1Dec_MediaEncryptionAlgorithm(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionCapability(PEncryptionCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_EncryptionCapability_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionCapability_ElmFn(PEncryptionCapability val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MediaEncryptionAlgorithm(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputCapability(ASN1encoding_t enc, UserInputCapability *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_UserInputCapability_nonStandard(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputCapability(ASN1decoding_t dec, UserInputCapability *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_UserInputCapability_nonStandard(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
break;
|
|
case 4:
|
|
break;
|
|
case 5:
|
|
break;
|
|
case 6:
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserInputCapability(UserInputCapability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_UserInputCapability_nonStandard(&(val)->u.nonStandard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223LogicalChannelParameters(ASN1encoding_t enc, H223LogicalChannelParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223LogicalChannelParameters_adaptationLayerType(enc, &(val)->adaptationLayerType))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->segmentableFlag))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223LogicalChannelParameters(ASN1decoding_t dec, H223LogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223LogicalChannelParameters_adaptationLayerType(dec, &(val)->adaptationLayerType))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->segmentableFlag))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H223LogicalChannelParameters(H223LogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H223LogicalChannelParameters_adaptationLayerType(&(val)->adaptationLayerType);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_V76LogicalChannelParameters(ASN1encoding_t enc, V76LogicalChannelParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_V76HDLCParameters(enc, &(val)->hdlcParameters))
|
|
return 0;
|
|
if (!ASN1Enc_V76LogicalChannelParameters_suspendResume(enc, &(val)->suspendResume))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->uIH))
|
|
return 0;
|
|
if (!ASN1Enc_V76LogicalChannelParameters_mode(enc, &(val)->mode))
|
|
return 0;
|
|
if (!ASN1Enc_V75Parameters(enc, &(val)->v75Parameters))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_V76LogicalChannelParameters(ASN1decoding_t dec, V76LogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_V76HDLCParameters(dec, &(val)->hdlcParameters))
|
|
return 0;
|
|
if (!ASN1Dec_V76LogicalChannelParameters_suspendResume(dec, &(val)->suspendResume))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->uIH))
|
|
return 0;
|
|
if (!ASN1Dec_V76LogicalChannelParameters_mode(dec, &(val)->mode))
|
|
return 0;
|
|
if (!ASN1Dec_V75Parameters(dec, &(val)->v75Parameters))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RTPPayloadType(ASN1encoding_t enc, RTPPayloadType *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_RTPPayloadType_payloadDescriptor(enc, &(val)->payloadDescriptor))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 7, (val)->payloadType))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RTPPayloadType(ASN1decoding_t dec, RTPPayloadType *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_RTPPayloadType_payloadDescriptor(dec, &(val)->payloadDescriptor))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 7, &(val)->payloadType))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RTPPayloadType(RTPPayloadType *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RTPPayloadType_payloadDescriptor(&(val)->payloadDescriptor);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H245TransportAddress(ASN1encoding_t enc, H245TransportAddress *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_UnicastAddress(enc, &(val)->u.unicastAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MulticastAddress(enc, &(val)->u.multicastAddress))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H245TransportAddress(ASN1decoding_t dec, H245TransportAddress *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_UnicastAddress(dec, &(val)->u.unicastAddress))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MulticastAddress(dec, &(val)->u.multicastAddress))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H245TransportAddress(H245TransportAddress *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_UnicastAddress(&(val)->u.unicastAddress);
|
|
break;
|
|
case 2:
|
|
ASN1Free_MulticastAddress(&(val)->u.multicastAddress);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelAckParameters(ASN1encoding_t enc, H2250LogicalChannelAckParameters *val)
|
|
{
|
|
ASN1octet_t o[2];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 2);
|
|
o[1] |= 0x80;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 5, o))
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_H2250LogicalChannelAckParameters_nonStandard(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sessionID - 1))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x20) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x10) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x8) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->dynamicRTPPayloadType - 96))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[1] & 0x80) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->flowControlToZero))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[1] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->portNumber))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelAckParameters(ASN1decoding_t dec, H2250LogicalChannelAckParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 5, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_H2250LogicalChannelAckParameters_nonStandard(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionID))
|
|
return 0;
|
|
(val)->sessionID += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->dynamicRTPPayloadType))
|
|
return 0;
|
|
(val)->dynamicRTPPayloadType += 96;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->flowControlToZero))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->portNumber))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelAckParameters(H2250LogicalChannelAckParameters *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_H2250LogicalChannelAckParameters_nonStandard(&(val)->nonStandard);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaChannel);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaControlChannel);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H223ModeParameters(ASN1encoding_t enc, H223ModeParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H223ModeParameters_adaptationLayerType(enc, &(val)->adaptationLayerType))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->segmentableFlag))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H223ModeParameters(ASN1decoding_t dec, H223ModeParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H223ModeParameters_adaptationLayerType(dec, &(val)->adaptationLayerType))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->segmentableFlag))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H223ModeParameters(H223ModeParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H223ModeParameters_adaptationLayerType(&(val)->adaptationLayerType);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncodingMode(ASN1encoding_t enc, RedundancyEncodingMode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_RedundancyEncodingMethod(enc, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_RedundancyEncodingMode_secondaryEncoding(enc, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncodingMode(ASN1decoding_t dec, RedundancyEncodingMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_RedundancyEncodingMethod(dec, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_RedundancyEncodingMode_secondaryEncoding(dec, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncodingMode(RedundancyEncodingMode *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RedundancyEncodingMethod(&(val)->redundancyEncodingMethod);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_RedundancyEncodingMode_secondaryEncoding(&(val)->secondaryEncoding);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VideoMode(ASN1encoding_t enc, VideoMode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H261VideoMode(enc, &(val)->u.h261VideoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H262VideoMode(enc, &(val)->u.h262VideoMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_H263VideoMode(enc, &(val)->u.h263VideoMode))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_IS11172VideoMode(enc, &(val)->u.is11172VideoMode))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VideoMode(ASN1decoding_t dec, VideoMode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H261VideoMode(dec, &(val)->u.h261VideoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H262VideoMode(dec, &(val)->u.h262VideoMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_H263VideoMode(dec, &(val)->u.h263VideoMode))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_IS11172VideoMode(dec, &(val)->u.is11172VideoMode))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_VideoMode(VideoMode *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 4:
|
|
ASN1Free_H263VideoMode(&(val)->u.h263VideoMode);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EncryptionCommand(ASN1encoding_t enc, EncryptionCommand *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->u.encryptionSE))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_EncryptionCommand_encryptionAlgorithmID(enc, &(val)->u.encryptionAlgorithmID))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EncryptionCommand(ASN1decoding_t dec, EncryptionCommand *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->u.encryptionSE))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_EncryptionCommand_encryptionAlgorithmID(dec, &(val)->u.encryptionAlgorithmID))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EncryptionCommand(EncryptionCommand *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1octetstring_free(&(val)->u.encryptionSE);
|
|
break;
|
|
case 3:
|
|
ASN1Free_EncryptionCommand_encryptionAlgorithmID(&(val)->u.encryptionAlgorithmID);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousCommand(ASN1encoding_t enc, MiscellaneousCommand *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousCommand_type(enc, &(val)->type))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousCommand(ASN1decoding_t dec, MiscellaneousCommand *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber))
|
|
return 0;
|
|
(val)->logicalChannelNumber += 1;
|
|
if (!ASN1Dec_MiscellaneousCommand_type(dec, &(val)->type))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MiscellaneousCommand(MiscellaneousCommand *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MiscellaneousCommand_type(&(val)->type);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MiscellaneousIndication(ASN1encoding_t enc, MiscellaneousIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->logicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_MiscellaneousIndication_type(enc, &(val)->type))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MiscellaneousIndication(ASN1decoding_t dec, MiscellaneousIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->logicalChannelNumber))
|
|
return 0;
|
|
(val)->logicalChannelNumber += 1;
|
|
if (!ASN1Dec_MiscellaneousIndication_type(dec, &(val)->type))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MiscellaneousIndication(MiscellaneousIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MiscellaneousIndication_type(&(val)->type);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MCLocationIndication(ASN1encoding_t enc, MCLocationIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->signalAddress))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MCLocationIndication(ASN1decoding_t dec, MCLocationIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->signalAddress))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MCLocationIndication(MCLocationIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_H245TransportAddress(&(val)->signalAddress);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserInputIndication(ASN1encoding_t enc, UserInputIndication *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
t = lstrlenA((val)->u.alphanumeric);
|
|
if (!ASN1PEREncFragmentedCharString(enc, t, (val)->u.alphanumeric, 8))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputIndication_userInputSupportIndication(ee, &(val)->u.userInputSupportIndication))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 4:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputIndication_signal(ee, &(val)->u.signal))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 5:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputIndication_signalUpdate(ee, &(val)->u.signalUpdate))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserInputIndication(ASN1decoding_t dec, UserInputIndication *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecFragmentedZeroCharString(dec, &(val)->u.alphanumeric, 8))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputIndication_userInputSupportIndication(dd, &(val)->u.userInputSupportIndication))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 4:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputIndication_signal(dd, &(val)->u.signal))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 5:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputIndication_signalUpdate(dd, &(val)->u.signalUpdate))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserInputIndication(UserInputIndication *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1ztcharstring_free((val)->u.alphanumeric);
|
|
break;
|
|
case 3:
|
|
ASN1Free_UserInputIndication_userInputSupportIndication(&(val)->u.userInputSupportIndication);
|
|
break;
|
|
case 4:
|
|
ASN1Free_UserInputIndication_signal(&(val)->u.signal);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application_nlpid(ASN1encoding_t enc, DataApplicationCapability_application_nlpid *val)
|
|
{
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->nlpidProtocol))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->nlpidData))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application_nlpid(ASN1decoding_t dec, DataApplicationCapability_application_nlpid *val)
|
|
{
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->nlpidProtocol))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->nlpidData))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application_nlpid(DataApplicationCapability_application_nlpid *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataProtocolCapability(&(val)->nlpidProtocol);
|
|
ASN1octetstring_free(&(val)->nlpidData);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application_t84(ASN1encoding_t enc, DataApplicationCapability_application_t84 *val)
|
|
{
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->t84Protocol))
|
|
return 0;
|
|
if (!ASN1Enc_T84Profile(enc, &(val)->t84Profile))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application_t84(ASN1decoding_t dec, DataApplicationCapability_application_t84 *val)
|
|
{
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->t84Protocol))
|
|
return 0;
|
|
if (!ASN1Dec_T84Profile(dec, &(val)->t84Profile))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application_t84(DataApplicationCapability_application_t84 *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataProtocolCapability(&(val)->t84Protocol);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataMode_application_nlpid(ASN1encoding_t enc, DataMode_application_nlpid *val)
|
|
{
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->nlpidProtocol))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->nlpidData))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataMode_application_nlpid(ASN1decoding_t dec, DataMode_application_nlpid *val)
|
|
{
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->nlpidProtocol))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->nlpidData))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataMode_application_nlpid(DataMode_application_nlpid *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataProtocolCapability(&(val)->nlpidProtocol);
|
|
ASN1octetstring_free(&(val)->nlpidData);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataMode_application(ASN1encoding_t enc, DataMode_application *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.t120))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.dsm_cc))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.userData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.t84))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.t434))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.h224))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_DataMode_application_nlpid(enc, &(val)->u.nlpid))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.h222DataPartitioning))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_DataProtocolCapability(ee, &(val)->u.t30fax))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_DataProtocolCapability(ee, &(val)->u.t140))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataMode_application(ASN1decoding_t dec, DataMode_application *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.t120))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.dsm_cc))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.userData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.t84))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.t434))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.h224))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_DataMode_application_nlpid(dec, &(val)->u.nlpid))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.h222DataPartitioning))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_DataProtocolCapability(dd, &(val)->u.t30fax))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_DataProtocolCapability(dd, &(val)->u.t140))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataMode_application(DataMode_application *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t120);
|
|
break;
|
|
case 3:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.dsm_cc);
|
|
break;
|
|
case 4:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.userData);
|
|
break;
|
|
case 5:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t84);
|
|
break;
|
|
case 6:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t434);
|
|
break;
|
|
case 7:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.h224);
|
|
break;
|
|
case 8:
|
|
ASN1Free_DataMode_application_nlpid(&(val)->u.nlpid);
|
|
break;
|
|
case 10:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.h222DataPartitioning);
|
|
break;
|
|
case 11:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t30fax);
|
|
break;
|
|
case 12:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t140);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_forwardMultiplexAckParameters(ASN1encoding_t enc, OpenLogicalChannelAck_forwardMultiplexAckParameters *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_H2250LogicalChannelAckParameters(enc, &(val)->u.h2250LogicalChannelAckParameters))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_forwardMultiplexAckParameters(ASN1decoding_t dec, OpenLogicalChannelAck_forwardMultiplexAckParameters *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_H2250LogicalChannelAckParameters(dec, &(val)->u.h2250LogicalChannelAckParameters))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_forwardMultiplexAckParameters(OpenLogicalChannelAck_forwardMultiplexAckParameters *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_H2250LogicalChannelAckParameters(&(val)->u.h2250LogicalChannelAckParameters);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters_mediaPacketization(ASN1encoding_t enc, H2250LogicalChannelParameters_mediaPacketization *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 0, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_RTPPayloadType(ee, &(val)->u.rtpPayloadType))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters_mediaPacketization(ASN1decoding_t dec, H2250LogicalChannelParameters_mediaPacketization *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 0, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RTPPayloadType(dd, &(val)->u.rtpPayloadType))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters_mediaPacketization(H2250LogicalChannelParameters_mediaPacketization *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_RTPPayloadType(&(val)->u.rtpPayloadType);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t NetworkAccessParameters_networkAddress_e164Address_StringTableEntries[] = {
|
|
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
|
|
{ 48, 57, 3 },
|
|
};
|
|
|
|
static ASN1stringtable_t NetworkAccessParameters_networkAddress_e164Address_StringTable = {
|
|
4, NetworkAccessParameters_networkAddress_e164Address_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters_networkAddress(ASN1encoding_t enc, NetworkAccessParameters_networkAddress *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_Q2931Address(enc, &(val)->u.q2931Address))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
t = lstrlenA((val)->u.e164Address);
|
|
if (!ASN1PEREncBitVal(enc, 7, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->u.e164Address, 4, &NetworkAccessParameters_networkAddress_e164Address_StringTable))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->u.localAreaAddress))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters_networkAddress(ASN1decoding_t dec, NetworkAccessParameters_networkAddress *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_Q2931Address(dec, &(val)->u.q2931Address))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecU32Val(dec, 7, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.e164Address, 4, &NetworkAccessParameters_networkAddress_e164Address_StringTable))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->u.localAreaAddress))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NetworkAccessParameters_networkAddress(NetworkAccessParameters_networkAddress *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_Q2931Address(&(val)->u.q2931Address);
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
ASN1Free_H245TransportAddress(&(val)->u.localAreaAddress);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability_application(ASN1encoding_t enc, DataApplicationCapability_application *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.t120))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.dsm_cc))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.userData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_DataApplicationCapability_application_t84(enc, &(val)->u.t84))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.t434))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.h224))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_DataApplicationCapability_application_nlpid(enc, &(val)->u.nlpid))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_DataProtocolCapability(enc, &(val)->u.h222DataPartitioning))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_DataProtocolCapability(ee, &(val)->u.t30fax))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_DataProtocolCapability(ee, &(val)->u.t140))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability_application(ASN1decoding_t dec, DataApplicationCapability_application *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 10))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.t120))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.dsm_cc))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.userData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_DataApplicationCapability_application_t84(dec, &(val)->u.t84))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.t434))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.h224))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_DataApplicationCapability_application_nlpid(dec, &(val)->u.nlpid))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_DataProtocolCapability(dec, &(val)->u.h222DataPartitioning))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_DataProtocolCapability(dd, &(val)->u.t30fax))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_DataProtocolCapability(dd, &(val)->u.t140))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability_application(DataApplicationCapability_application *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t120);
|
|
break;
|
|
case 3:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.dsm_cc);
|
|
break;
|
|
case 4:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.userData);
|
|
break;
|
|
case 5:
|
|
ASN1Free_DataApplicationCapability_application_t84(&(val)->u.t84);
|
|
break;
|
|
case 6:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t434);
|
|
break;
|
|
case 7:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.h224);
|
|
break;
|
|
case 8:
|
|
ASN1Free_DataApplicationCapability_application_nlpid(&(val)->u.nlpid);
|
|
break;
|
|
case 10:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.h222DataPartitioning);
|
|
break;
|
|
case 11:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t30fax);
|
|
break;
|
|
case 12:
|
|
ASN1Free_DataProtocolCapability(&(val)->u.t140);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_spatialEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_spatialEnhancement *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_EnhancementLayerInfo_spatialEnhancement_ElmFn, 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_spatialEnhancement_ElmFn(ASN1encoding_t enc, PEnhancementLayerInfo_spatialEnhancement val)
|
|
{
|
|
if (!ASN1Enc_EnhancementOptions(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_spatialEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_spatialEnhancement *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_EnhancementLayerInfo_spatialEnhancement_ElmFn, sizeof(**val), 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_spatialEnhancement_ElmFn(ASN1decoding_t dec, PEnhancementLayerInfo_spatialEnhancement val)
|
|
{
|
|
if (!ASN1Dec_EnhancementOptions(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_spatialEnhancement(PEnhancementLayerInfo_spatialEnhancement *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_EnhancementLayerInfo_spatialEnhancement_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_spatialEnhancement_ElmFn(PEnhancementLayerInfo_spatialEnhancement val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EnhancementOptions(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_snrEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_snrEnhancement *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_EnhancementLayerInfo_snrEnhancement_ElmFn, 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_snrEnhancement_ElmFn(ASN1encoding_t enc, PEnhancementLayerInfo_snrEnhancement val)
|
|
{
|
|
if (!ASN1Enc_EnhancementOptions(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_snrEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_snrEnhancement *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_EnhancementLayerInfo_snrEnhancement_ElmFn, sizeof(**val), 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_snrEnhancement_ElmFn(ASN1decoding_t dec, PEnhancementLayerInfo_snrEnhancement val)
|
|
{
|
|
if (!ASN1Dec_EnhancementOptions(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_snrEnhancement(PEnhancementLayerInfo_snrEnhancement *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_EnhancementLayerInfo_snrEnhancement_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_snrEnhancement_ElmFn(PEnhancementLayerInfo_snrEnhancement val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EnhancementOptions(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaPacketizationCapability_rtpPayloadType(ASN1encoding_t enc, MediaPacketizationCapability_rtpPayloadType *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_RTPPayloadType(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaPacketizationCapability_rtpPayloadType(ASN1decoding_t dec, MediaPacketizationCapability_rtpPayloadType *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_RTPPayloadType(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaPacketizationCapability_rtpPayloadType(MediaPacketizationCapability_rtpPayloadType *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1Free_RTPPayloadType(&(val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250Capability_redundancyEncodingCapability(ASN1encoding_t enc, PH2250Capability_redundancyEncodingCapability *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H2250Capability_redundancyEncodingCapability_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250Capability_redundancyEncodingCapability_ElmFn(ASN1encoding_t enc, PH2250Capability_redundancyEncodingCapability val)
|
|
{
|
|
if (!ASN1Enc_RedundancyEncodingCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250Capability_redundancyEncodingCapability(ASN1decoding_t dec, PH2250Capability_redundancyEncodingCapability *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H2250Capability_redundancyEncodingCapability_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250Capability_redundancyEncodingCapability_ElmFn(ASN1decoding_t dec, PH2250Capability_redundancyEncodingCapability val)
|
|
{
|
|
if (!ASN1Dec_RedundancyEncodingCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250Capability_redundancyEncodingCapability(PH2250Capability_redundancyEncodingCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H2250Capability_redundancyEncodingCapability_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250Capability_redundancyEncodingCapability_ElmFn(PH2250Capability_redundancyEncodingCapability val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RedundancyEncodingCapability(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommandMessage(ASN1encoding_t enc, CommandMessage *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardMessage(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MaintenanceLoopOffCommand(enc, &(val)->u.maintenanceLoopOffCommand))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_SendTerminalCapabilitySet(enc, &(val)->u.sendTerminalCapabilitySet))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_EncryptionCommand(enc, &(val)->u.encryptionCommand))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_FlowControlCommand(enc, &(val)->u.flowControlCommand))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_EndSessionCommand(enc, &(val)->u.endSessionCommand))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_MiscellaneousCommand(enc, &(val)->u.miscellaneousCommand))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_CommunicationModeCommand(ee, &(val)->u.communicationModeCommand))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 9:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceCommand(ee, &(val)->u.conferenceCommand))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 10:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H223MultiplexReconfiguration(ee, &(val)->u.h223MultiplexReconfiguration))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommandMessage(ASN1decoding_t dec, CommandMessage *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardMessage(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MaintenanceLoopOffCommand(dec, &(val)->u.maintenanceLoopOffCommand))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_SendTerminalCapabilitySet(dec, &(val)->u.sendTerminalCapabilitySet))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_EncryptionCommand(dec, &(val)->u.encryptionCommand))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_FlowControlCommand(dec, &(val)->u.flowControlCommand))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_EndSessionCommand(dec, &(val)->u.endSessionCommand))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_MiscellaneousCommand(dec, &(val)->u.miscellaneousCommand))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_CommunicationModeCommand(dd, &(val)->u.communicationModeCommand))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 9:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceCommand(dd, &(val)->u.conferenceCommand))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 10:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H223MultiplexReconfiguration(dd, &(val)->u.h223MultiplexReconfiguration))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommandMessage(CommandMessage *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardMessage(&(val)->u.nonStandard);
|
|
break;
|
|
case 3:
|
|
ASN1Free_SendTerminalCapabilitySet(&(val)->u.sendTerminalCapabilitySet);
|
|
break;
|
|
case 4:
|
|
ASN1Free_EncryptionCommand(&(val)->u.encryptionCommand);
|
|
break;
|
|
case 6:
|
|
ASN1Free_EndSessionCommand(&(val)->u.endSessionCommand);
|
|
break;
|
|
case 7:
|
|
ASN1Free_MiscellaneousCommand(&(val)->u.miscellaneousCommand);
|
|
break;
|
|
case 8:
|
|
ASN1Free_CommunicationModeCommand(&(val)->u.communicationModeCommand);
|
|
break;
|
|
case 9:
|
|
ASN1Free_ConferenceCommand(&(val)->u.conferenceCommand);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H235SecurityCapability(ASN1encoding_t enc, H235SecurityCapability *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_EncryptionAuthenticationAndIntegrity(enc, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->mediaCapability - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H235SecurityCapability(ASN1decoding_t dec, H235SecurityCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionAuthenticationAndIntegrity(dec, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->mediaCapability))
|
|
return 0;
|
|
(val)->mediaCapability += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H235SecurityCapability(H235SecurityCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EncryptionAuthenticationAndIntegrity(&(val)->encryptionAuthenticationAndIntegrity);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaPacketizationCapability(ASN1encoding_t enc, MediaPacketizationCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->h261aVideoPacketization))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, (val)->o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_MediaPacketizationCapability_rtpPayloadType(ee, &(val)->rtpPayloadType))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaPacketizationCapability(ASN1decoding_t dec, MediaPacketizationCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->h261aVideoPacketization))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_MediaPacketizationCapability_rtpPayloadType(dd, &(val)->rtpPayloadType))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaPacketizationCapability(MediaPacketizationCapability *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_MediaPacketizationCapability_rtpPayloadType(&(val)->rtpPayloadType);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_VideoCapability(ASN1encoding_t enc, VideoCapability *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H261VideoCapability(enc, &(val)->u.h261VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H262VideoCapability(enc, &(val)->u.h262VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_H263VideoCapability(enc, &(val)->u.h263VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_IS11172VideoCapability(enc, &(val)->u.is11172VideoCapability))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_VideoCapability(ASN1decoding_t dec, VideoCapability *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H261VideoCapability(dec, &(val)->u.h261VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H262VideoCapability(dec, &(val)->u.h262VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_H263VideoCapability(dec, &(val)->u.h263VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_IS11172VideoCapability(dec, &(val)->u.is11172VideoCapability))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_VideoCapability(VideoCapability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 4:
|
|
ASN1Free_H263VideoCapability(&(val)->u.h263VideoCapability);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_BEnhancementParameters(ASN1encoding_t enc, BEnhancementParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_EnhancementOptions(enc, &(val)->enhancementOptions))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 6, (val)->numberOfBPictures - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_BEnhancementParameters(ASN1decoding_t dec, BEnhancementParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_EnhancementOptions(dec, &(val)->enhancementOptions))
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dec, 6, &(val)->numberOfBPictures))
|
|
return 0;
|
|
(val)->numberOfBPictures += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_BEnhancementParameters(BEnhancementParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EnhancementOptions(&(val)->enhancementOptions);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataApplicationCapability(ASN1encoding_t enc, DataApplicationCapability *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_DataApplicationCapability_application(enc, &(val)->application))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->maxBitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->maxBitRate))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataApplicationCapability(ASN1decoding_t dec, DataApplicationCapability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_DataApplicationCapability_application(dec, &(val)->application))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->maxBitRate))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataApplicationCapability(DataApplicationCapability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataApplicationCapability_application(&(val)->application);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NetworkAccessParameters(ASN1encoding_t enc, NetworkAccessParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_NetworkAccessParameters_distribution(enc, &(val)->distribution))
|
|
return 0;
|
|
}
|
|
if (!ASN1Enc_NetworkAccessParameters_networkAddress(enc, &(val)->networkAddress))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->associateConference))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->externalReference, 1, 255, 8))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1Enc_NetworkAccessParameters_t120SetupProcedure(ee, &(val)->t120SetupProcedure))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NetworkAccessParameters(ASN1decoding_t dec, NetworkAccessParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_NetworkAccessParameters_distribution(dec, &(val)->distribution))
|
|
return 0;
|
|
}
|
|
if (!ASN1Dec_NetworkAccessParameters_networkAddress(dec, &(val)->networkAddress))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->associateConference))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->externalReference, 1, 255, 8))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NetworkAccessParameters_t120SetupProcedure(dd, &(val)->t120SetupProcedure))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NetworkAccessParameters(NetworkAccessParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NetworkAccessParameters_networkAddress(&(val)->networkAddress);
|
|
if ((val)->o[0] & 0x40) {
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250ModeParameters(ASN1encoding_t enc, H2250ModeParameters *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_RedundancyEncodingMode(enc, &(val)->redundancyEncodingMode))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250ModeParameters(ASN1decoding_t dec, H2250ModeParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_RedundancyEncodingMode(dec, &(val)->redundancyEncodingMode))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250ModeParameters(H2250ModeParameters *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_RedundancyEncodingMode(&(val)->redundancyEncodingMode);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataMode(ASN1encoding_t enc, DataMode *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_DataMode_application(enc, &(val)->application))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->bitRate);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bitRate))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataMode(ASN1decoding_t dec, DataMode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_DataMode_application(dec, &(val)->application))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bitRate))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataMode(DataMode *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataMode_application(&(val)->application);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry_dataType(ASN1encoding_t enc, CommunicationModeTableEntry_dataType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry_dataType(ASN1decoding_t dec, CommunicationModeTableEntry_dataType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry_dataType(CommunicationModeTableEntry_dataType *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_VideoCapability(&(val)->u.videoData);
|
|
break;
|
|
case 2:
|
|
ASN1Free_AudioCapability(&(val)->u.audioData);
|
|
break;
|
|
case 3:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.data);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H235Mode_mediaMode(ASN1encoding_t enc, H235Mode_mediaMode *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_VideoMode(enc, &(val)->u.videoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_AudioMode(enc, &(val)->u.audioMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_DataMode(enc, &(val)->u.dataMode))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H235Mode_mediaMode(ASN1decoding_t dec, H235Mode_mediaMode *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_VideoMode(dec, &(val)->u.videoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_AudioMode(dec, &(val)->u.audioMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_DataMode(dec, &(val)->u.dataMode))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H235Mode_mediaMode(H235Mode_mediaMode *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_VideoMode(&(val)->u.videoMode);
|
|
break;
|
|
case 3:
|
|
ASN1Free_AudioMode(&(val)->u.audioMode);
|
|
break;
|
|
case 4:
|
|
ASN1Free_DataMode(&(val)->u.dataMode);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H235Media_mediaType(ASN1encoding_t enc, H235Media_mediaType *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H235Media_mediaType(ASN1decoding_t dec, H235Media_mediaType *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H235Media_mediaType(H235Media_mediaType *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_VideoCapability(&(val)->u.videoData);
|
|
break;
|
|
case 3:
|
|
ASN1Free_AudioCapability(&(val)->u.audioData);
|
|
break;
|
|
case 4:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.data);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_bPictureEnhancement(ASN1encoding_t enc, PEnhancementLayerInfo_bPictureEnhancement *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_EnhancementLayerInfo_bPictureEnhancement_ElmFn, 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_EnhancementLayerInfo_bPictureEnhancement_ElmFn(ASN1encoding_t enc, PEnhancementLayerInfo_bPictureEnhancement val)
|
|
{
|
|
if (!ASN1Enc_BEnhancementParameters(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_bPictureEnhancement(ASN1decoding_t dec, PEnhancementLayerInfo_bPictureEnhancement *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_EnhancementLayerInfo_bPictureEnhancement_ElmFn, sizeof(**val), 1, 14, 4);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_EnhancementLayerInfo_bPictureEnhancement_ElmFn(ASN1decoding_t dec, PEnhancementLayerInfo_bPictureEnhancement val)
|
|
{
|
|
if (!ASN1Dec_BEnhancementParameters(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_bPictureEnhancement(PEnhancementLayerInfo_bPictureEnhancement *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_EnhancementLayerInfo_bPictureEnhancement_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_EnhancementLayerInfo_bPictureEnhancement_ElmFn(PEnhancementLayerInfo_bPictureEnhancement val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_BEnhancementParameters(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_distributedData(ASN1encoding_t enc, PMediaDistributionCapability_distributedData *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_MediaDistributionCapability_distributedData_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_distributedData_ElmFn(ASN1encoding_t enc, PMediaDistributionCapability_distributedData val)
|
|
{
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_distributedData(ASN1decoding_t dec, PMediaDistributionCapability_distributedData *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_MediaDistributionCapability_distributedData_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_distributedData_ElmFn(ASN1decoding_t dec, PMediaDistributionCapability_distributedData val)
|
|
{
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_distributedData(PMediaDistributionCapability_distributedData *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_MediaDistributionCapability_distributedData_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_distributedData_ElmFn(PMediaDistributionCapability_distributedData val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataApplicationCapability(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_centralizedData(ASN1encoding_t enc, PMediaDistributionCapability_centralizedData *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_MediaDistributionCapability_centralizedData_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MediaDistributionCapability_centralizedData_ElmFn(ASN1encoding_t enc, PMediaDistributionCapability_centralizedData val)
|
|
{
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_centralizedData(ASN1decoding_t dec, PMediaDistributionCapability_centralizedData *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_MediaDistributionCapability_centralizedData_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MediaDistributionCapability_centralizedData_ElmFn(ASN1decoding_t dec, PMediaDistributionCapability_centralizedData val)
|
|
{
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_centralizedData(PMediaDistributionCapability_centralizedData *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_MediaDistributionCapability_centralizedData_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MediaDistributionCapability_centralizedData_ElmFn(PMediaDistributionCapability_centralizedData val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataApplicationCapability(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_Capability(ASN1encoding_t enc, Capability *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 12))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.receiveVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.transmitVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.receiveAndTransmitVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.receiveAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.transmitAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.receiveAndTransmitAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.receiveDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.transmitDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.receiveAndTransmitDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1PEREncBoolean(enc, (val)->u.h233EncryptionTransmitCapability))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_Capability_h233EncryptionReceiveCapability(enc, &(val)->u.h233EncryptionReceiveCapability))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceCapability(ee, &(val)->u.conferenceCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 14:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H235SecurityCapability(ee, &(val)->u.h235SecurityCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
ASN1PEREncAlignment(ee);
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->u.maxPendingReplacementFor))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputCapability(ee, &(val)->u.receiveUserInputCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 17:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputCapability(ee, &(val)->u.transmitUserInputCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 18:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_UserInputCapability(ee, &(val)->u.receiveAndTransmitUserInputCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Capability(ASN1decoding_t dec, Capability *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 12))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.receiveVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.transmitVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.receiveAndTransmitVideoCapability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.receiveAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.transmitAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.receiveAndTransmitAudioCapability))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.receiveDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.transmitDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.receiveAndTransmitDataApplicationCapability))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1PERDecBoolean(dec, &(val)->u.h233EncryptionTransmitCapability))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_Capability_h233EncryptionReceiveCapability(dec, &(val)->u.h233EncryptionReceiveCapability))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceCapability(dd, &(val)->u.conferenceCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 14:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H235SecurityCapability(dd, &(val)->u.h235SecurityCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1PERDecAlignment(dd);
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->u.maxPendingReplacementFor))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputCapability(dd, &(val)->u.receiveUserInputCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 17:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputCapability(dd, &(val)->u.transmitUserInputCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 18:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_UserInputCapability(dd, &(val)->u.receiveAndTransmitUserInputCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Capability(Capability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_VideoCapability(&(val)->u.receiveVideoCapability);
|
|
break;
|
|
case 3:
|
|
ASN1Free_VideoCapability(&(val)->u.transmitVideoCapability);
|
|
break;
|
|
case 4:
|
|
ASN1Free_VideoCapability(&(val)->u.receiveAndTransmitVideoCapability);
|
|
break;
|
|
case 5:
|
|
ASN1Free_AudioCapability(&(val)->u.receiveAudioCapability);
|
|
break;
|
|
case 6:
|
|
ASN1Free_AudioCapability(&(val)->u.transmitAudioCapability);
|
|
break;
|
|
case 7:
|
|
ASN1Free_AudioCapability(&(val)->u.receiveAndTransmitAudioCapability);
|
|
break;
|
|
case 8:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.receiveDataApplicationCapability);
|
|
break;
|
|
case 9:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.transmitDataApplicationCapability);
|
|
break;
|
|
case 10:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.receiveAndTransmitDataApplicationCapability);
|
|
break;
|
|
case 13:
|
|
ASN1Free_ConferenceCapability(&(val)->u.conferenceCapability);
|
|
break;
|
|
case 14:
|
|
ASN1Free_H235SecurityCapability(&(val)->u.h235SecurityCapability);
|
|
break;
|
|
case 16:
|
|
ASN1Free_UserInputCapability(&(val)->u.receiveUserInputCapability);
|
|
break;
|
|
case 17:
|
|
ASN1Free_UserInputCapability(&(val)->u.transmitUserInputCapability);
|
|
break;
|
|
case 18:
|
|
ASN1Free_UserInputCapability(&(val)->u.receiveAndTransmitUserInputCapability);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250Capability(ASN1encoding_t enc, H2250Capability *val)
|
|
{
|
|
ASN1octet_t o[1];
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
CopyMemory(o, (val)->o, 1);
|
|
o[0] |= 0x20;
|
|
o[0] |= 0x10;
|
|
y = ASN1PEREncCheckExtensions(4, (val)->o + 0);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->maximumAudioDelayJitter))
|
|
return 0;
|
|
if (!ASN1Enc_MultipointCapability(enc, &(val)->receiveMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Enc_MultipointCapability(enc, &(val)->transmitMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Enc_MultipointCapability(enc, &(val)->receiveAndTransmitMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Enc_H2250Capability_mcCapability(enc, &(val)->mcCapability))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->rtcpVideoControlCapability))
|
|
return 0;
|
|
if (!ASN1Enc_MediaPacketizationCapability(enc, &(val)->mediaPacketizationCapability))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 4, o + 0))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (o[0] & 0x80) {
|
|
if (!ASN1Enc_TransportCapability(ee, &(val)->transportCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x40) {
|
|
if (!ASN1Enc_H2250Capability_redundancyEncodingCapability(ee, &(val)->redundancyEncodingCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x20) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->logicalChannelSwitchingCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if (o[0] & 0x10) {
|
|
if (!ASN1PEREncBoolean(ee, (val)->t120DynamicPortCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250Capability(ASN1decoding_t dec, H2250Capability *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->maximumAudioDelayJitter))
|
|
return 0;
|
|
if (!ASN1Dec_MultipointCapability(dec, &(val)->receiveMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Dec_MultipointCapability(dec, &(val)->transmitMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Dec_MultipointCapability(dec, &(val)->receiveAndTransmitMultipointCapability))
|
|
return 0;
|
|
if (!ASN1Dec_H2250Capability_mcCapability(dec, &(val)->mcCapability))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->rtcpVideoControlCapability))
|
|
return 0;
|
|
if (!ASN1Dec_MediaPacketizationCapability(dec, &(val)->mediaPacketizationCapability))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 0, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 0))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TransportCapability(dd, &(val)->transportCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250Capability_redundancyEncodingCapability(dd, &(val)->redundancyEncodingCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->logicalChannelSwitchingCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dd, &(val)->t120DynamicPortCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250Capability(H2250Capability *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_MultipointCapability(&(val)->receiveMultipointCapability);
|
|
ASN1Free_MultipointCapability(&(val)->transmitMultipointCapability);
|
|
ASN1Free_MultipointCapability(&(val)->receiveAndTransmitMultipointCapability);
|
|
ASN1Free_MediaPacketizationCapability(&(val)->mediaPacketizationCapability);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_TransportCapability(&(val)->transportCapability);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_H2250Capability_redundancyEncodingCapability(&(val)->redundancyEncodingCapability);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H235Media(ASN1encoding_t enc, H235Media *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_EncryptionAuthenticationAndIntegrity(enc, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1Enc_H235Media_mediaType(enc, &(val)->mediaType))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H235Media(ASN1decoding_t dec, H235Media *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionAuthenticationAndIntegrity(dec, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1Dec_H235Media_mediaType(dec, &(val)->mediaType))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H235Media(H235Media *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EncryptionAuthenticationAndIntegrity(&(val)->encryptionAuthenticationAndIntegrity);
|
|
ASN1Free_H235Media_mediaType(&(val)->mediaType);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H235Mode(ASN1encoding_t enc, H235Mode *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_EncryptionAuthenticationAndIntegrity(enc, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1Enc_H235Mode_mediaMode(enc, &(val)->mediaMode))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H235Mode(ASN1decoding_t dec, H235Mode *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionAuthenticationAndIntegrity(dec, &(val)->encryptionAuthenticationAndIntegrity))
|
|
return 0;
|
|
if (!ASN1Dec_H235Mode_mediaMode(dec, &(val)->mediaMode))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H235Mode(H235Mode *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_EncryptionAuthenticationAndIntegrity(&(val)->encryptionAuthenticationAndIntegrity);
|
|
ASN1Free_H235Mode_mediaMode(&(val)->mediaMode);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ModeElement_type(ASN1encoding_t enc, ModeElement_type *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_VideoMode(enc, &(val)->u.videoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_AudioMode(enc, &(val)->u.audioMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_DataMode(enc, &(val)->u.dataMode))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_EncryptionMode(enc, &(val)->u.encryptionMode))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H235Mode(ee, &(val)->u.h235Mode))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ModeElement_type(ASN1decoding_t dec, ModeElement_type *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_VideoMode(dec, &(val)->u.videoMode))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_AudioMode(dec, &(val)->u.audioMode))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_DataMode(dec, &(val)->u.dataMode))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_EncryptionMode(dec, &(val)->u.encryptionMode))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H235Mode(dd, &(val)->u.h235Mode))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ModeElement_type(ModeElement_type *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_VideoMode(&(val)->u.videoMode);
|
|
break;
|
|
case 3:
|
|
ASN1Free_AudioMode(&(val)->u.audioMode);
|
|
break;
|
|
case 4:
|
|
ASN1Free_DataMode(&(val)->u.dataMode);
|
|
break;
|
|
case 5:
|
|
ASN1Free_EncryptionMode(&(val)->u.encryptionMode);
|
|
break;
|
|
case 6:
|
|
ASN1Free_H235Mode(&(val)->u.h235Mode);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityTableEntry(ASN1encoding_t enc, CapabilityTableEntry *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->capabilityTableEntryNumber - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_Capability(enc, &(val)->capability))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityTableEntry(ASN1decoding_t dec, CapabilityTableEntry *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->capabilityTableEntryNumber))
|
|
return 0;
|
|
(val)->capabilityTableEntryNumber += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_Capability(dec, &(val)->capability))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CapabilityTableEntry(CapabilityTableEntry *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_Capability(&(val)->capability);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultiplexCapability(ASN1encoding_t enc, MultiplexCapability *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H222Capability(enc, &(val)->u.h222Capability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_H223Capability(enc, &(val)->u.h223Capability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_V76Capability(enc, &(val)->u.v76Capability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H2250Capability(ee, &(val)->u.h2250Capability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultiplexCapability(ASN1decoding_t dec, MultiplexCapability *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H222Capability(dec, &(val)->u.h222Capability))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_H223Capability(dec, &(val)->u.h223Capability))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_V76Capability(dec, &(val)->u.v76Capability))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250Capability(dd, &(val)->u.h2250Capability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultiplexCapability(MultiplexCapability *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_H222Capability(&(val)->u.h222Capability);
|
|
break;
|
|
case 5:
|
|
ASN1Free_H2250Capability(&(val)->u.h2250Capability);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_DataType(ASN1encoding_t enc, DataType *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_VideoCapability(enc, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_AudioCapability(enc, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_DataApplicationCapability(enc, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_EncryptionMode(enc, &(val)->u.encryptionData))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(ee, &(val)->u.h235Control))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 8:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H235Media(ee, &(val)->u.h235Media))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_DataType(ASN1decoding_t dec, DataType *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_VideoCapability(dec, &(val)->u.videoData))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_AudioCapability(dec, &(val)->u.audioData))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_DataApplicationCapability(dec, &(val)->u.data))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_EncryptionMode(dec, &(val)->u.encryptionData))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dd, &(val)->u.h235Control))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 8:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H235Media(dd, &(val)->u.h235Media))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_DataType(DataType *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardParameter(&(val)->u.nonStandard);
|
|
break;
|
|
case 3:
|
|
ASN1Free_VideoCapability(&(val)->u.videoData);
|
|
break;
|
|
case 4:
|
|
ASN1Free_AudioCapability(&(val)->u.audioData);
|
|
break;
|
|
case 5:
|
|
ASN1Free_DataApplicationCapability(&(val)->u.data);
|
|
break;
|
|
case 6:
|
|
ASN1Free_EncryptionMode(&(val)->u.encryptionData);
|
|
break;
|
|
case 7:
|
|
ASN1Free_NonStandardParameter(&(val)->u.h235Control);
|
|
break;
|
|
case 8:
|
|
ASN1Free_H235Media(&(val)->u.h235Media);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RedundancyEncoding(ASN1encoding_t enc, RedundancyEncoding *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_RedundancyEncodingMethod(enc, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_DataType(enc, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RedundancyEncoding(ASN1decoding_t dec, RedundancyEncoding *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_RedundancyEncodingMethod(dec, &(val)->redundancyEncodingMethod))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_DataType(dec, &(val)->secondaryEncoding))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RedundancyEncoding(RedundancyEncoding *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RedundancyEncodingMethod(&(val)->redundancyEncodingMethod);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_DataType(&(val)->secondaryEncoding);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ModeElement(ASN1encoding_t enc, ModeElement *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ModeElement_type(enc, &(val)->type))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_H223ModeParameters(enc, &(val)->h223ModeParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1Enc_V76ModeParameters(ee, &(val)->v76ModeParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1Enc_H2250ModeParameters(ee, &(val)->h2250ModeParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ModeElement(ASN1decoding_t dec, ModeElement *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ModeElement_type(dec, &(val)->type))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_H223ModeParameters(dec, &(val)->h223ModeParameters))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_V76ModeParameters(dd, &(val)->v76ModeParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250ModeParameters(dd, &(val)->h2250ModeParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ModeElement(ModeElement *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ModeElement_type(&(val)->type);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_H223ModeParameters(&(val)->h223ModeParameters);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
ASN1Free_H2250ModeParameters(&(val)->h2250ModeParameters);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeTableEntry(ASN1encoding_t enc, CommunicationModeTableEntry *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_CommunicationModeTableEntry_nonStandard(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sessionID - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->associatedSessionID - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBitVal(enc, 7, ((val)->sessionDescription).length - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncChar16String(enc, ((val)->sessionDescription).length, ((val)->sessionDescription).value, 16))
|
|
return 0;
|
|
if (!ASN1Enc_CommunicationModeTableEntry_dataType(enc, &(val)->dataType))
|
|
return 0;
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PEREncBoolean(enc, (val)->mediaGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PEREncBoolean(enc, (val)->mediaControlGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1Enc_RedundancyEncoding(ee, &(val)->redundancyEncoding))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PEREncBitVal(ee, 8, (val)->sessionDependency - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1Enc_TerminalLabel(ee, &(val)->destination))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeTableEntry(ASN1decoding_t dec, CommunicationModeTableEntry *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_CommunicationModeTableEntry_nonStandard(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionID))
|
|
return 0;
|
|
(val)->sessionID += 1;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->associatedSessionID))
|
|
return 0;
|
|
(val)->associatedSessionID += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->terminalLabel))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecU32Val(dec, 7, &((val)->sessionDescription).length))
|
|
return 0;
|
|
((val)->sessionDescription).length += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecChar16String(dec, ((val)->sessionDescription).length, &((val)->sessionDescription).value, 16))
|
|
return 0;
|
|
if (!ASN1Dec_CommunicationModeTableEntry_dataType(dec, &(val)->dataType))
|
|
return 0;
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1PERDecBoolean(dec, &(val)->mediaGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PERDecBoolean(dec, &(val)->mediaControlGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RedundancyEncoding(dd, &(val)->redundancyEncoding))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecU16Val(dd, 8, &(val)->sessionDependency))
|
|
return 0;
|
|
(val)->sessionDependency += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dd, &(val)->destination))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeTableEntry(CommunicationModeTableEntry *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_CommunicationModeTableEntry_nonStandard(&(val)->nonStandard);
|
|
}
|
|
ASN1char16string_free(&(val)->sessionDescription);
|
|
ASN1Free_CommunicationModeTableEntry_dataType(&(val)->dataType);
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaChannel);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaControlChannel);
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
ASN1Free_RedundancyEncoding(&(val)->redundancyEncoding);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeResponse_communicationModeTable(ASN1encoding_t enc, PCommunicationModeResponse_communicationModeTable *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CommunicationModeResponse_communicationModeTable_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeResponse_communicationModeTable_ElmFn(ASN1encoding_t enc, PCommunicationModeResponse_communicationModeTable val)
|
|
{
|
|
if (!ASN1Enc_CommunicationModeTableEntry(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeResponse_communicationModeTable(ASN1decoding_t dec, PCommunicationModeResponse_communicationModeTable *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CommunicationModeResponse_communicationModeTable_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeResponse_communicationModeTable_ElmFn(ASN1decoding_t dec, PCommunicationModeResponse_communicationModeTable val)
|
|
{
|
|
if (!ASN1Dec_CommunicationModeTableEntry(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeResponse_communicationModeTable(PCommunicationModeResponse_communicationModeTable *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CommunicationModeResponse_communicationModeTable_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeResponse_communicationModeTable_ElmFn(PCommunicationModeResponse_communicationModeTable val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CommunicationModeTableEntry(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeCommand_communicationModeTable(ASN1encoding_t enc, PCommunicationModeCommand_communicationModeTable *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CommunicationModeCommand_communicationModeTable_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CommunicationModeCommand_communicationModeTable_ElmFn(ASN1encoding_t enc, PCommunicationModeCommand_communicationModeTable val)
|
|
{
|
|
if (!ASN1Enc_CommunicationModeTableEntry(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeCommand_communicationModeTable(ASN1decoding_t dec, PCommunicationModeCommand_communicationModeTable *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CommunicationModeCommand_communicationModeTable_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CommunicationModeCommand_communicationModeTable_ElmFn(ASN1decoding_t dec, PCommunicationModeCommand_communicationModeTable val)
|
|
{
|
|
if (!ASN1Dec_CommunicationModeTableEntry(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeCommand_communicationModeTable(PCommunicationModeCommand_communicationModeTable *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CommunicationModeCommand_communicationModeTable_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CommunicationModeCommand_communicationModeTable_ElmFn(PCommunicationModeCommand_communicationModeTable val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CommunicationModeTableEntry(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet_capabilityTable(ASN1encoding_t enc, PTerminalCapabilitySet_capabilityTable *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_TerminalCapabilitySet_capabilityTable_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet_capabilityTable_ElmFn(ASN1encoding_t enc, PTerminalCapabilitySet_capabilityTable val)
|
|
{
|
|
if (!ASN1Enc_CapabilityTableEntry(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet_capabilityTable(ASN1decoding_t dec, PTerminalCapabilitySet_capabilityTable *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_TerminalCapabilitySet_capabilityTable_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet_capabilityTable_ElmFn(ASN1decoding_t dec, PTerminalCapabilitySet_capabilityTable val)
|
|
{
|
|
if (!ASN1Dec_CapabilityTableEntry(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet_capabilityTable(PTerminalCapabilitySet_capabilityTable *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_TerminalCapabilitySet_capabilityTable_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet_capabilityTable_ElmFn(PTerminalCapabilitySet_capabilityTable val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CapabilityTableEntry(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TerminalCapabilitySet(ASN1encoding_t enc, TerminalCapabilitySet *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_MultiplexCapability(enc, &(val)->multiplexCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_TerminalCapabilitySet_capabilityTable(enc, &(val)->capabilityTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_TerminalCapabilitySet_capabilityDescriptors(enc, &(val)->capabilityDescriptors))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TerminalCapabilitySet(ASN1decoding_t dec, TerminalCapabilitySet *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sequenceNumber))
|
|
return 0;
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_MultiplexCapability(dec, &(val)->multiplexCapability))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_TerminalCapabilitySet_capabilityTable(dec, &(val)->capabilityTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_TerminalCapabilitySet_capabilityDescriptors(dec, &(val)->capabilityDescriptors))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TerminalCapabilitySet(TerminalCapabilitySet *val)
|
|
{
|
|
if (val) {
|
|
ASN1objectidentifier_free(&(val)->protocolIdentifier);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_MultiplexCapability(&(val)->multiplexCapability);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_TerminalCapabilitySet_capabilityTable(&(val)->capabilityTable);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_TerminalCapabilitySet_capabilityDescriptors(&(val)->capabilityDescriptors);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_H2250LogicalChannelParameters(ASN1encoding_t enc, H2250LogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(3, (val)->o + 2);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 10, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_H2250LogicalChannelParameters_nonStandard(enc, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->sessionID))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->associatedSessionID - 1))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PEREncBoolean(enc, (val)->mediaGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_H245TransportAddress(enc, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PEREncBoolean(enc, (val)->mediaControlGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PEREncBoolean(enc, (val)->silenceSuppression))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Enc_TerminalLabel(enc, &(val)->destination))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 5, (val)->dynamicRTPPayloadType - 96))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1Enc_H2250LogicalChannelParameters_mediaPacketization(enc, &(val)->mediaPacketization))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 2))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[2] & 0x80) {
|
|
if (!ASN1Enc_TransportCapability(ee, &(val)->transportCapability))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[2] & 0x40) {
|
|
if (!ASN1Enc_RedundancyEncoding(ee, &(val)->redundancyEncoding))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[2] & 0x20) {
|
|
if (!ASN1Enc_TerminalLabel(ee, &(val)->source))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_H2250LogicalChannelParameters(ASN1decoding_t dec, H2250LogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 10, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_H2250LogicalChannelParameters_nonStandard(dec, &(val)->nonStandard))
|
|
return 0;
|
|
}
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionID))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU16Val(dec, 8, &(val)->associatedSessionID))
|
|
return 0;
|
|
(val)->associatedSessionID += 1;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1PERDecBoolean(dec, &(val)->mediaGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_H245TransportAddress(dec, &(val)->mediaControlChannel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1PERDecBoolean(dec, &(val)->mediaControlGuaranteedDelivery))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1PERDecBoolean(dec, &(val)->silenceSuppression))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Dec_TerminalLabel(dec, &(val)->destination))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecU16Val(dec, 5, &(val)->dynamicRTPPayloadType))
|
|
return 0;
|
|
(val)->dynamicRTPPayloadType += 96;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1Dec_H2250LogicalChannelParameters_mediaPacketization(dec, &(val)->mediaPacketization))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 2, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 2))
|
|
return 0;
|
|
if ((val)->o[2] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TransportCapability(dd, &(val)->transportCapability))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[2] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_RedundancyEncoding(dd, &(val)->redundancyEncoding))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[2] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_TerminalLabel(dd, &(val)->source))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_H2250LogicalChannelParameters(H2250LogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_H2250LogicalChannelParameters_nonStandard(&(val)->nonStandard);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaChannel);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_H245TransportAddress(&(val)->mediaControlChannel);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
ASN1Free_H2250LogicalChannelParameters_mediaPacketization(&(val)->mediaPacketization);
|
|
}
|
|
if ((val)->o[2] & 0x80) {
|
|
ASN1Free_TransportCapability(&(val)->transportCapability);
|
|
}
|
|
if ((val)->o[2] & 0x40) {
|
|
ASN1Free_RedundancyEncoding(&(val)->redundancyEncoding);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ModeDescription(ASN1encoding_t enc, ModeDescription *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val)->count - 1))
|
|
return 0;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Enc_ModeElement(enc, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ModeDescription(ASN1decoding_t dec, ModeDescription *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val)->count))
|
|
return 0;
|
|
(val)->count += 1;
|
|
for (i = 0; i < (val)->count; i++) {
|
|
if (!ASN1Dec_ModeElement(dec, &((val)->value)[i]))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ModeDescription(ModeDescription *val)
|
|
{
|
|
ASN1uint32_t i;
|
|
if (val) {
|
|
for (i = 0; i < (val)->count; i++) {
|
|
ASN1Free_ModeElement(&(val)->value[i]);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_H222LogicalChannelParameters(enc, &(val)->u.h222LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_H223LogicalChannelParameters(enc, &(val)->u.h223LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_V76LogicalChannelParameters(enc, &(val)->u.v76LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H2250LogicalChannelParameters(ee, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 5:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_H222LogicalChannelParameters(dec, &(val)->u.h222LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_H223LogicalChannelParameters(dec, &(val)->u.h223LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_V76LogicalChannelParameters(dec, &(val)->u.v76LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250LogicalChannelParameters(dd, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 5:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_H222LogicalChannelParameters(&(val)->u.h222LogicalChannelParameters);
|
|
break;
|
|
case 2:
|
|
ASN1Free_H223LogicalChannelParameters(&(val)->u.h223LogicalChannelParameters);
|
|
break;
|
|
case 4:
|
|
ASN1Free_H2250LogicalChannelParameters(&(val)->u.h2250LogicalChannelParameters);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_H223LogicalChannelParameters(enc, &(val)->u.h223LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_V76LogicalChannelParameters(enc, &(val)->u.v76LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H2250LogicalChannelParameters(ee, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_H223LogicalChannelParameters(dec, &(val)->u.h223LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_V76LogicalChannelParameters(dec, &(val)->u.v76LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250LogicalChannelParameters(dd, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_H223LogicalChannelParameters(&(val)->u.h223LogicalChannelParameters);
|
|
break;
|
|
case 3:
|
|
ASN1Free_H2250LogicalChannelParameters(&(val)->u.h2250LogicalChannelParameters);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(ASN1encoding_t enc, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 0, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_H222LogicalChannelParameters(enc, &(val)->u.h222LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H2250LogicalChannelParameters(ee, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(ASN1decoding_t dec, OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 0, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_H222LogicalChannelParameters(dec, &(val)->u.h222LogicalChannelParameters))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250LogicalChannelParameters(dd, &(val)->u.h2250LogicalChannelParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_H222LogicalChannelParameters(&(val)->u.h222LogicalChannelParameters);
|
|
break;
|
|
case 2:
|
|
ASN1Free_H2250LogicalChannelParameters(&(val)->u.h2250LogicalChannelParameters);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMode_requestedModes(ASN1encoding_t enc, PRequestMode_requestedModes *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestMode_requestedModes_ElmFn, 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMode_requestedModes_ElmFn(ASN1encoding_t enc, PRequestMode_requestedModes val)
|
|
{
|
|
if (!ASN1Enc_ModeDescription(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMode_requestedModes(ASN1decoding_t dec, PRequestMode_requestedModes *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestMode_requestedModes_ElmFn, sizeof(**val), 1, 256, 8);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMode_requestedModes_ElmFn(ASN1decoding_t dec, PRequestMode_requestedModes val)
|
|
{
|
|
if (!ASN1Dec_ModeDescription(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMode_requestedModes(PRequestMode_requestedModes *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestMode_requestedModes_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMode_requestedModes_ElmFn(PRequestMode_requestedModes val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ModeDescription(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannelAck_reverseLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->reverseLogicalChannelNumber - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->portNumber))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(enc, &(val)->multiplexParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 1, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->replacementFor - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannelAck_reverseLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->reverseLogicalChannelNumber))
|
|
return 0;
|
|
(val)->reverseLogicalChannelNumber += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->portNumber))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(dec, &(val)->multiplexParameters))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->replacementFor))
|
|
return 0;
|
|
(val)->replacementFor += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters(OpenLogicalChannelAck_reverseLogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters(&(val)->multiplexParameters);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannel_reverseLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_DataType(enc, &(val)->dataType))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(enc, &(val)->multiplexParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->reverseLogicalChannelDependency - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->replacementFor - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannel_reverseLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_DataType(dec, &(val)->dataType))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(dec, &(val)->multiplexParameters))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->reverseLogicalChannelDependency))
|
|
return 0;
|
|
(val)->reverseLogicalChannelDependency += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->replacementFor))
|
|
return 0;
|
|
(val)->replacementFor += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters(OpenLogicalChannel_reverseLogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataType(&(val)->dataType);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters(&(val)->multiplexParameters);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters(ASN1encoding_t enc, OpenLogicalChannel_forwardLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->portNumber))
|
|
return 0;
|
|
}
|
|
if (!ASN1Enc_DataType(enc, &(val)->dataType))
|
|
return 0;
|
|
if (!ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(enc, &(val)->multiplexParameters))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->forwardLogicalChannelDependency - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(ee, (val)->replacementFor - 1))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters(ASN1decoding_t dec, OpenLogicalChannel_forwardLogicalChannelParameters *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->portNumber))
|
|
return 0;
|
|
}
|
|
if (!ASN1Dec_DataType(dec, &(val)->dataType))
|
|
return 0;
|
|
if (!ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(dec, &(val)->multiplexParameters))
|
|
return 0;
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->forwardLogicalChannelDependency))
|
|
return 0;
|
|
(val)->forwardLogicalChannelDependency += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dd, &(val)->replacementFor))
|
|
return 0;
|
|
(val)->replacementFor += 1;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters(OpenLogicalChannel_forwardLogicalChannelParameters *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_DataType(&(val)->dataType);
|
|
ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters(&(val)->multiplexParameters);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannel(ASN1encoding_t enc, OpenLogicalChannel *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if (!ASN1Enc_OpenLogicalChannel_forwardLogicalChannelParameters(enc, &(val)->forwardLogicalChannelParameters))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_OpenLogicalChannel_reverseLogicalChannelParameters(enc, &(val)->reverseLogicalChannelParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 2, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1Enc_NetworkAccessParameters(ee, &(val)->separateStack))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1Enc_EncryptionSync(ee, &(val)->encryptionSync))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannel(ASN1decoding_t dec, OpenLogicalChannel *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if (!ASN1Dec_OpenLogicalChannel_forwardLogicalChannelParameters(dec, &(val)->forwardLogicalChannelParameters))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_OpenLogicalChannel_reverseLogicalChannelParameters(dec, &(val)->reverseLogicalChannelParameters))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NetworkAccessParameters(dd, &(val)->separateStack))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionSync(dd, &(val)->encryptionSync))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannel(OpenLogicalChannel *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_OpenLogicalChannel_forwardLogicalChannelParameters(&(val)->forwardLogicalChannelParameters);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_OpenLogicalChannel_reverseLogicalChannelParameters(&(val)->reverseLogicalChannelParameters);
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
ASN1Free_NetworkAccessParameters(&(val)->separateStack);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
ASN1Free_EncryptionSync(&(val)->encryptionSync);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_OpenLogicalChannelAck(ASN1encoding_t enc, OpenLogicalChannelAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1encoding_t ee;
|
|
y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
|
|
if (!ASN1PEREncBitVal(enc, 1, y))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->forwardLogicalChannelNumber - 1))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_OpenLogicalChannelAck_reverseLogicalChannelParameters(enc, &(val)->reverseLogicalChannelParameters))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
|
|
return 0;
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1Enc_NetworkAccessParameters(ee, &(val)->separateStack))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1Enc_OpenLogicalChannelAck_forwardMultiplexAckParameters(ee, &(val)->forwardMultiplexAckParameters))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1Enc_EncryptionSync(ee, &(val)->encryptionSync))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
}
|
|
ASN1_CloseEncoder2(ee);
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_OpenLogicalChannelAck(ASN1decoding_t dec, OpenLogicalChannelAck *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
ASN1uint32_t i;
|
|
ASN1uint32_t e;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->forwardLogicalChannelNumber))
|
|
return 0;
|
|
(val)->forwardLogicalChannelNumber += 1;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_OpenLogicalChannelAck_reverseLogicalChannelParameters(dec, &(val)->reverseLogicalChannelParameters))
|
|
return 0;
|
|
}
|
|
if (!y) {
|
|
ZeroMemory((val)->o + 1, 1);
|
|
} else {
|
|
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
|
|
return 0;
|
|
if ((val)->o[1] & 0x80) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_NetworkAccessParameters(dd, &(val)->separateStack))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_OpenLogicalChannelAck_forwardMultiplexAckParameters(dd, &(val)->forwardMultiplexAckParameters))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_EncryptionSync(dd, &(val)->encryptionSync))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
}
|
|
for (i = 0; i < e; i++) {
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_OpenLogicalChannelAck(OpenLogicalChannelAck *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_OpenLogicalChannelAck_reverseLogicalChannelParameters(&(val)->reverseLogicalChannelParameters);
|
|
}
|
|
if ((val)->o[1] & 0x80) {
|
|
ASN1Free_NetworkAccessParameters(&(val)->separateStack);
|
|
}
|
|
if ((val)->o[1] & 0x40) {
|
|
ASN1Free_OpenLogicalChannelAck_forwardMultiplexAckParameters(&(val)->forwardMultiplexAckParameters);
|
|
}
|
|
if ((val)->o[1] & 0x20) {
|
|
ASN1Free_EncryptionSync(&(val)->encryptionSync);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestMessage(ASN1encoding_t enc, RequestMessage *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 11))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardMessage(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MasterSlaveDetermination(enc, &(val)->u.masterSlaveDetermination))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_TerminalCapabilitySet(enc, &(val)->u.terminalCapabilitySet))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_OpenLogicalChannel(enc, &(val)->u.openLogicalChannel))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_CloseLogicalChannel(enc, &(val)->u.closeLogicalChannel))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_RequestChannelClose(enc, &(val)->u.requestChannelClose))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_MultiplexEntrySend(enc, &(val)->u.multiplexEntrySend))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_RequestMultiplexEntry(enc, &(val)->u.requestMultiplexEntry))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RequestMode(enc, &(val)->u.requestMode))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_RoundTripDelayRequest(enc, &(val)->u.roundTripDelayRequest))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_MaintenanceLoopRequest(enc, &(val)->u.maintenanceLoopRequest))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_CommunicationModeRequest(ee, &(val)->u.communicationModeRequest))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 13:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceRequest(ee, &(val)->u.conferenceRequest))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestMessage(ASN1decoding_t dec, RequestMessage *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 11))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardMessage(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MasterSlaveDetermination(dec, &(val)->u.masterSlaveDetermination))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_TerminalCapabilitySet(dec, &(val)->u.terminalCapabilitySet))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_OpenLogicalChannel(dec, &(val)->u.openLogicalChannel))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_CloseLogicalChannel(dec, &(val)->u.closeLogicalChannel))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_RequestChannelClose(dec, &(val)->u.requestChannelClose))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_MultiplexEntrySend(dec, &(val)->u.multiplexEntrySend))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_RequestMultiplexEntry(dec, &(val)->u.requestMultiplexEntry))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RequestMode(dec, &(val)->u.requestMode))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_RoundTripDelayRequest(dec, &(val)->u.roundTripDelayRequest))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_MaintenanceLoopRequest(dec, &(val)->u.maintenanceLoopRequest))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_CommunicationModeRequest(dd, &(val)->u.communicationModeRequest))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 13:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceRequest(dd, &(val)->u.conferenceRequest))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RequestMessage(RequestMessage *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardMessage(&(val)->u.nonStandard);
|
|
break;
|
|
case 3:
|
|
ASN1Free_TerminalCapabilitySet(&(val)->u.terminalCapabilitySet);
|
|
break;
|
|
case 4:
|
|
ASN1Free_OpenLogicalChannel(&(val)->u.openLogicalChannel);
|
|
break;
|
|
case 6:
|
|
ASN1Free_RequestChannelClose(&(val)->u.requestChannelClose);
|
|
break;
|
|
case 7:
|
|
ASN1Free_MultiplexEntrySend(&(val)->u.multiplexEntrySend);
|
|
break;
|
|
case 8:
|
|
ASN1Free_RequestMultiplexEntry(&(val)->u.requestMultiplexEntry);
|
|
break;
|
|
case 9:
|
|
ASN1Free_RequestMode(&(val)->u.requestMode);
|
|
break;
|
|
case 13:
|
|
ASN1Free_ConferenceRequest(&(val)->u.conferenceRequest);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ResponseMessage(ASN1encoding_t enc, ResponseMessage *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 5, 19))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardMessage(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_MasterSlaveDeterminationAck(enc, &(val)->u.masterSlaveDeterminationAck))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_MasterSlaveDeterminationReject(enc, &(val)->u.masterSlaveDeterminationReject))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_TerminalCapabilitySetAck(enc, &(val)->u.terminalCapabilitySetAck))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_TerminalCapabilitySetReject(enc, &(val)->u.terminalCapabilitySetReject))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_OpenLogicalChannelAck(enc, &(val)->u.openLogicalChannelAck))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_OpenLogicalChannelReject(enc, &(val)->u.openLogicalChannelReject))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_CloseLogicalChannelAck(enc, &(val)->u.closeLogicalChannelAck))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RequestChannelCloseAck(enc, &(val)->u.requestChannelCloseAck))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_RequestChannelCloseReject(enc, &(val)->u.requestChannelCloseReject))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_MultiplexEntrySendAck(enc, &(val)->u.multiplexEntrySendAck))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_MultiplexEntrySendReject(enc, &(val)->u.multiplexEntrySendReject))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_RequestMultiplexEntryAck(enc, &(val)->u.requestMultiplexEntryAck))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_RequestMultiplexEntryReject(enc, &(val)->u.requestMultiplexEntryReject))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Enc_RequestModeAck(enc, &(val)->u.requestModeAck))
|
|
return 0;
|
|
break;
|
|
case 16:
|
|
if (!ASN1Enc_RequestModeReject(enc, &(val)->u.requestModeReject))
|
|
return 0;
|
|
break;
|
|
case 17:
|
|
if (!ASN1Enc_RoundTripDelayResponse(enc, &(val)->u.roundTripDelayResponse))
|
|
return 0;
|
|
break;
|
|
case 18:
|
|
if (!ASN1Enc_MaintenanceLoopAck(enc, &(val)->u.maintenanceLoopAck))
|
|
return 0;
|
|
break;
|
|
case 19:
|
|
if (!ASN1Enc_MaintenanceLoopReject(enc, &(val)->u.maintenanceLoopReject))
|
|
return 0;
|
|
break;
|
|
case 20:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_CommunicationModeResponse(ee, &(val)->u.communicationModeResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 21:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceResponse(ee, &(val)->u.conferenceResponse))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ResponseMessage(ASN1decoding_t dec, ResponseMessage *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 5, 19))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardMessage(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_MasterSlaveDeterminationAck(dec, &(val)->u.masterSlaveDeterminationAck))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_MasterSlaveDeterminationReject(dec, &(val)->u.masterSlaveDeterminationReject))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_TerminalCapabilitySetAck(dec, &(val)->u.terminalCapabilitySetAck))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_TerminalCapabilitySetReject(dec, &(val)->u.terminalCapabilitySetReject))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_OpenLogicalChannelAck(dec, &(val)->u.openLogicalChannelAck))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_OpenLogicalChannelReject(dec, &(val)->u.openLogicalChannelReject))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_CloseLogicalChannelAck(dec, &(val)->u.closeLogicalChannelAck))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RequestChannelCloseAck(dec, &(val)->u.requestChannelCloseAck))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_RequestChannelCloseReject(dec, &(val)->u.requestChannelCloseReject))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_MultiplexEntrySendAck(dec, &(val)->u.multiplexEntrySendAck))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_MultiplexEntrySendReject(dec, &(val)->u.multiplexEntrySendReject))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_RequestMultiplexEntryAck(dec, &(val)->u.requestMultiplexEntryAck))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_RequestMultiplexEntryReject(dec, &(val)->u.requestMultiplexEntryReject))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Dec_RequestModeAck(dec, &(val)->u.requestModeAck))
|
|
return 0;
|
|
break;
|
|
case 16:
|
|
if (!ASN1Dec_RequestModeReject(dec, &(val)->u.requestModeReject))
|
|
return 0;
|
|
break;
|
|
case 17:
|
|
if (!ASN1Dec_RoundTripDelayResponse(dec, &(val)->u.roundTripDelayResponse))
|
|
return 0;
|
|
break;
|
|
case 18:
|
|
if (!ASN1Dec_MaintenanceLoopAck(dec, &(val)->u.maintenanceLoopAck))
|
|
return 0;
|
|
break;
|
|
case 19:
|
|
if (!ASN1Dec_MaintenanceLoopReject(dec, &(val)->u.maintenanceLoopReject))
|
|
return 0;
|
|
break;
|
|
case 20:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_CommunicationModeResponse(dd, &(val)->u.communicationModeResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 21:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceResponse(dd, &(val)->u.conferenceResponse))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ResponseMessage(ResponseMessage *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardMessage(&(val)->u.nonStandard);
|
|
break;
|
|
case 6:
|
|
ASN1Free_OpenLogicalChannelAck(&(val)->u.openLogicalChannelAck);
|
|
break;
|
|
case 11:
|
|
ASN1Free_MultiplexEntrySendAck(&(val)->u.multiplexEntrySendAck);
|
|
break;
|
|
case 12:
|
|
ASN1Free_MultiplexEntrySendReject(&(val)->u.multiplexEntrySendReject);
|
|
break;
|
|
case 13:
|
|
ASN1Free_RequestMultiplexEntryAck(&(val)->u.requestMultiplexEntryAck);
|
|
break;
|
|
case 14:
|
|
ASN1Free_RequestMultiplexEntryReject(&(val)->u.requestMultiplexEntryReject);
|
|
break;
|
|
case 20:
|
|
ASN1Free_CommunicationModeResponse(&(val)->u.communicationModeResponse);
|
|
break;
|
|
case 21:
|
|
ASN1Free_ConferenceResponse(&(val)->u.conferenceResponse);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FastConnectOLC(ASN1encoding_t enc, FastConnectOLC *val)
|
|
{
|
|
if (!ASN1Enc_OpenLogicalChannel(enc, val))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FastConnectOLC(ASN1decoding_t dec, FastConnectOLC *val)
|
|
{
|
|
if (!ASN1Dec_OpenLogicalChannel(dec, val))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_FastConnectOLC(FastConnectOLC *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_OpenLogicalChannel(val);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FunctionNotUnderstood(ASN1encoding_t enc, FunctionNotUnderstood *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_RequestMessage(enc, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ResponseMessage(enc, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_CommandMessage(enc, &(val)->u.command))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FunctionNotUnderstood(ASN1decoding_t dec, FunctionNotUnderstood *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_RequestMessage(dec, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ResponseMessage(dec, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_CommandMessage(dec, &(val)->u.command))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_FunctionNotUnderstood(FunctionNotUnderstood *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_RequestMessage(&(val)->u.request);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ResponseMessage(&(val)->u.response);
|
|
break;
|
|
case 3:
|
|
ASN1Free_CommandMessage(&(val)->u.command);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IndicationMessage(ASN1encoding_t enc, IndicationMessage *val)
|
|
{
|
|
ASN1encoding_t ee;
|
|
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NonStandardMessage(enc, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_FunctionNotUnderstood(enc, &(val)->u.functionNotUnderstood))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_MasterSlaveDeterminationRelease(enc, &(val)->u.masterSlaveDeterminationRelease))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_TerminalCapabilitySetRelease(enc, &(val)->u.terminalCapabilitySetRelease))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_OpenLogicalChannelConfirm(enc, &(val)->u.openLogicalChannelConfirm))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_RequestChannelCloseRelease(enc, &(val)->u.requestChannelCloseRelease))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_MultiplexEntrySendRelease(enc, &(val)->u.multiplexEntrySendRelease))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_RequestMultiplexEntryRelease(enc, &(val)->u.requestMultiplexEntryRelease))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RequestModeRelease(enc, &(val)->u.requestModeRelease))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_MiscellaneousIndication(enc, &(val)->u.miscellaneousIndication))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_JitterIndication(enc, &(val)->u.jitterIndication))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_H223SkewIndication(enc, &(val)->u.h223SkewIndication))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_NewATMVCIndication(enc, &(val)->u.newATMVCIndication))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_UserInputIndication(enc, &(val)->u.userInput))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_H2250MaximumSkewIndication(ee, &(val)->u.h2250MaximumSkewIndication))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 16:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_MCLocationIndication(ee, &(val)->u.mcLocationIndication))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 17:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceIndication(ee, &(val)->u.conferenceIndication))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 18:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_VendorIdentification(ee, &(val)->u.vendorIdentification))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
case 19:
|
|
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
|
|
return 0;
|
|
if (!ASN1Enc_FunctionNotSupported(ee, &(val)->u.functionNotSupported))
|
|
return 0;
|
|
if (!ASN1PEREncFlushFragmentedToParent(ee))
|
|
return 0;
|
|
ASN1_CloseEncoder2(ee);
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IndicationMessage(ASN1decoding_t dec, IndicationMessage *val)
|
|
{
|
|
ASN1decoding_t dd;
|
|
ASN1octet_t *db;
|
|
ASN1uint32_t ds;
|
|
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 14))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NonStandardMessage(dec, &(val)->u.nonStandard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_FunctionNotUnderstood(dec, &(val)->u.functionNotUnderstood))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_MasterSlaveDeterminationRelease(dec, &(val)->u.masterSlaveDeterminationRelease))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_TerminalCapabilitySetRelease(dec, &(val)->u.terminalCapabilitySetRelease))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_OpenLogicalChannelConfirm(dec, &(val)->u.openLogicalChannelConfirm))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_RequestChannelCloseRelease(dec, &(val)->u.requestChannelCloseRelease))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_MultiplexEntrySendRelease(dec, &(val)->u.multiplexEntrySendRelease))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_RequestMultiplexEntryRelease(dec, &(val)->u.requestMultiplexEntryRelease))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RequestModeRelease(dec, &(val)->u.requestModeRelease))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_MiscellaneousIndication(dec, &(val)->u.miscellaneousIndication))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_JitterIndication(dec, &(val)->u.jitterIndication))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_H223SkewIndication(dec, &(val)->u.h223SkewIndication))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_NewATMVCIndication(dec, &(val)->u.newATMVCIndication))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_UserInputIndication(dec, &(val)->u.userInput))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_H2250MaximumSkewIndication(dd, &(val)->u.h2250MaximumSkewIndication))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 16:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_MCLocationIndication(dd, &(val)->u.mcLocationIndication))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 17:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceIndication(dd, &(val)->u.conferenceIndication))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 18:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_VendorIdentification(dd, &(val)->u.vendorIdentification))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 19:
|
|
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
|
|
return 0;
|
|
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
|
|
return 0;
|
|
if (!ASN1Dec_FunctionNotSupported(dd, &(val)->u.functionNotSupported))
|
|
return 0;
|
|
ASN1_CloseDecoder(dd);
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_IndicationMessage(IndicationMessage *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NonStandardMessage(&(val)->u.nonStandard);
|
|
break;
|
|
case 2:
|
|
ASN1Free_FunctionNotUnderstood(&(val)->u.functionNotUnderstood);
|
|
break;
|
|
case 7:
|
|
ASN1Free_MultiplexEntrySendRelease(&(val)->u.multiplexEntrySendRelease);
|
|
break;
|
|
case 8:
|
|
ASN1Free_RequestMultiplexEntryRelease(&(val)->u.requestMultiplexEntryRelease);
|
|
break;
|
|
case 10:
|
|
ASN1Free_MiscellaneousIndication(&(val)->u.miscellaneousIndication);
|
|
break;
|
|
case 14:
|
|
ASN1Free_UserInputIndication(&(val)->u.userInput);
|
|
break;
|
|
case 16:
|
|
ASN1Free_MCLocationIndication(&(val)->u.mcLocationIndication);
|
|
break;
|
|
case 18:
|
|
ASN1Free_VendorIdentification(&(val)->u.vendorIdentification);
|
|
break;
|
|
case 19:
|
|
ASN1Free_FunctionNotSupported(&(val)->u.functionNotSupported);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_MultimediaSystemControlMessage(ASN1encoding_t enc, MultimediaSystemControlMessage *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_RequestMessage(enc, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ResponseMessage(enc, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_CommandMessage(enc, &(val)->u.command))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_IndicationMessage(enc, &(val)->u.indication))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_MultimediaSystemControlMessage(ASN1decoding_t dec, MultimediaSystemControlMessage *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_RequestMessage(dec, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ResponseMessage(dec, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_CommandMessage(dec, &(val)->u.command))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_IndicationMessage(dec, &(val)->u.indication))
|
|
return 0;
|
|
break;
|
|
case 0:
|
|
/* extension case */
|
|
if (!ASN1PERDecSkipFragmented(dec, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_MultimediaSystemControlMessage(MultimediaSystemControlMessage *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_RequestMessage(&(val)->u.request);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ResponseMessage(&(val)->u.response);
|
|
break;
|
|
case 3:
|
|
ASN1Free_CommandMessage(&(val)->u.command);
|
|
break;
|
|
case 4:
|
|
ASN1Free_IndicationMessage(&(val)->u.indication);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|