Logo Search packages:      
Sourcecode: ethereal version File versions

packet-h245.c

/* Do not modify this file.                                                   */
/* It is created automatically by the ASN.1 to Ethereal dissector compiler    */
/* ./packet-h245.c                                                            */
/* ../../tools/asn2eth.py -X -e -p h245 -c h245.cnf -s packet-h245-template h245.asn */

/* Input file: packet-h245-template.c */

/* packet-h245_asn1.c
 * Routines for h245 packet dissection
 * Copyright 2004, Anders Broman <anders.broman@ericsson.com>
 *
 * $Id: packet-h245.c 13717 2005-03-11 14:35:55Z gerald $
 *
 * Ethereal - Network traffic analyzer
 * By Gerald Combs <gerald@ethereal.com>
 * Copyright 1998 Gerald Combs
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 * To quote the author of the previous H245 dissector:
 *   "This is a complete replacement of the previous limitied dissector
 * that Ronnie was crazy enough to write by hand. It was a lot of time
 * to hack it by hand, but it is incomplete and buggy and it is good when
 * it will go away."
 * Ronnie did a great job and all the VoIP users had made good use of it!
 * Credit to Tomas Kukosa for developing the Asn2eth compiler.
 *
 */

#ifdef HAVE_CONFIG_H
# include "config.h"
#endif

#include <glib.h>
#include <epan/packet.h>
#include <epan/conversation.h>

#include <stdio.h>
#include <string.h>

#include <epan/prefs.h>
#include "tap.h"
#include "packet-h245.h"
#include "packet-tpkt.h"
#include "packet-per.h"
#include <epan/t35.h>
#include "packet-rtp.h"
#include "packet-rtcp.h"
#include "packet-ber.h"

#define PNAME  "h245"
#define PSNAME "h245"
#define PFNAME "h245"

static dissector_handle_t rtp_handle=NULL;
static dissector_handle_t rtcp_handle=NULL;
static dissector_table_t nsp_object_dissector_table;
static dissector_table_t nsp_h221_dissector_table;
static dissector_handle_t nsp_handle;
static dissector_handle_t h245_handle;
static dissector_handle_t MultimediaSystemControlMessage_handle;

static void reset_h245_packet_info(h245_packet_info *pi);
static int hf_h245_pdu_type = -1;
static int hf_h245Manufacturer = -1;
static int h245_tap = -1;
static int ett_h245 = -1;
static int h245dg_tap = -1;
static h245_packet_info pi_arr[5]; /* We assuming a maximum of 5 H245 messaages per packet */
static int pi_current=0;
h245_packet_info *h245_pi=NULL;

static gboolean h245_reassembly = TRUE;
static gboolean h245_shorttypes = FALSE;
static const value_string h245_RequestMessage_short_vals[] = {
      {  0, "NSM" },
      {  1, "MSD" },
      {  2, "TCS" },
      {  3, "OLC" },
      {  4, "CLC" },
      {  5, "RCC" },
      {  6, "MES" },
      {  7, "RME" },
      {  8, "RM" },
      {  9, "RTDR" },
      { 10, "MLR" },
      { 11, "CMR" },
      { 12, "CR" },
      { 13, "MR" },
      { 14, "LCRR" },
      { 15, "GR" },
      {  0, NULL }
};
static const value_string h245_ResponseMessage_short_vals[] = {
      {  0, "NSM" },
      {  1, "MSDAck" },
      {  2, "MSDReject" },
      {  3, "TCSAck" },
      {  4, "TCSReject" },
      {  5, "OLCAck" },
      {  6, "OLCReject" },
      {  7, "CLCAck" },
      {  8, "RCCAck" },
      {  9, "RCCReject" },
      { 10, "MESAck" },
      { 11, "MESReject" },
      { 12, "RMEAck" },
      { 13, "RMEReject" },
      { 14, "RMAck" },
      { 15, "RMReject" },
      { 16, "RTDResponse" },
      { 17, "MLAck" },
      { 18, "MLReject" },
      { 19, "CMResponse" },
      { 20, "CResponse" },
      { 21, "MResponse" },
      { 22, "LCRAck" },
      { 23, "LCRReject" },
      { 24, "GR" },
      {  0, NULL }
};
static const value_string h245_IndicationMessage_short_vals[] = {
      {  0, "NSM" },
      {  1, "FNU" },
      {  2, "MSDRelease" },
      {  3, "TCSRelease" },
      {  4, "OLCConfirm" },
      {  5, "RCCRelease" },
      {  6, "MESRelease" },
      {  7, "RMERelease" },
      {  8, "RMRelease" },
      {  9, "MI" },
      { 10, "JI" },
      { 11, "H223SI" },
      { 12, "NATMVCI" },
      { 13, "UII" },
      { 14, "H2250MSI" },
      { 15, "MCLI" },
      { 16, "CI" },
      { 17, "VI" },
      { 18, "FNS" },
      { 19, "MultilinkIndication" },
      { 20, "LCRRelease" },
      { 21, "FCIndication" },
      { 22, "MMRI" },
      { 22, "GI" },
      {  0, NULL }
};
static const value_string h245_CommandMessage_short_vals[] = {
      {  0, "NSM" },
      {  1, "MLOC" },
      {  2, "STCS" },
      {  3, "EC" },
      {  4, "FCC" },
      {  5, "ESC" },
      {  6, "MC" },
      {  7, "CMC" },
      {  8, "CC" },
      {  9, "H223MR" },
      { 10, "NATMVCC" },
      { 11, "MMRC" },
      { 12, "GC" },
      {  0, NULL }
};
static const value_string h245_AudioCapability_short_vals[] = {
        {  0, "nonStd" },
        {  1, "g711A" },
        {  2, "g711A56k" },
        {  3, "g711U" },
        {  4, "g711U56k" },
        {  5, "g722-64k" },
        {  6, "g722-56k" },
        {  7, "g722-48k" },
        {  8, "g7231" },
        {  9, "g728" },
        { 10, "g729" },
        { 11, "g729A" },
        { 12, "is11172" },
        { 13, "is13818" },
        { 14, "g729B" },
        { 15, "g729AB" },
        { 16, "g7231C" },
        { 17, "gsmFR" },
        { 18, "gsmHR" },
        { 19, "gsmEFR" },
        { 20, "generic" },
        { 21, "g729Ext" },
        { 22, "vbd" },
        { 23, "audioTelEvent" },
        { 24, "audioTone" },
        {  0, NULL }
};

/* To put the codec type only in COL_INFO when
   an OLC is read */

char* codec_type = NULL;
static char standard_oid_str[256];
static guint32 ipv4_address;
static guint32 ipv4_port;
static guint32 rtcp_ipv4_address;
static guint32 rtcp_ipv4_port;
static gboolean media_channel;
static gboolean media_control_channel;
static guint32 t35CountryCode;
static guint32 t35Extension;
static guint32 manufacturerCode;
static guint32 h221NonStandard;

static const value_string h245_RFC_number_vals[] = {
      {  2190,    "RFC 2190 - H.263 Video Streams" },
      {  2429,    "RFC 2429 - 1998 Version of ITU-T Rec. H.263 Video (H.263+)" },
      {  3267,    "RFC 3267 - Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB)" },
      {  0, NULL }
};
/* Initialize the protocol and registered fields */
int proto_h245 = -1;

/*--- Included file: packet-h245-hf.c ---*/

static int hf_h245_request = -1;                  /* RequestMessage */
static int hf_h245_response = -1;                 /* ResponseMessage */
static int hf_h245_command = -1;                  /* CommandMessage */
static int hf_h245_indication = -1;               /* IndicationMessage */
static int hf_h245_nonStandardMsg = -1;           /* NonStandardMessage */
static int hf_h245_masterSlaveDetermination = -1;  /* MasterSlaveDetermination */
static int hf_h245_terminalCapabilitySet = -1;    /* TerminalCapabilitySet */
static int hf_h245_openLogicalChannel = -1;       /* OpenLogicalChannel */
static int hf_h245_closeLogicalChannel = -1;      /* CloseLogicalChannel */
static int hf_h245_requestChannelClose = -1;      /* RequestChannelClose */
static int hf_h245_multiplexEntrySend = -1;       /* MultiplexEntrySend */
static int hf_h245_requestMultiplexEntry = -1;    /* RequestMultiplexEntry */
static int hf_h245_requestMode = -1;              /* RequestMode */
static int hf_h245_roundTripDelayRequest = -1;    /* RoundTripDelayRequest */
static int hf_h245_maintenanceLoopRequest = -1;   /* MaintenanceLoopRequest */
static int hf_h245_communicationModeRequest = -1;  /* CommunicationModeRequest */
static int hf_h245_conferenceRequest = -1;        /* ConferenceRequest */
static int hf_h245_multilinkRequest = -1;         /* MultilinkRequest */
static int hf_h245_logicalChannelRateRequest = -1;  /* LogicalChannelRateRequest */
static int hf_h245_genericRequest = -1;           /* GenericMessage */
static int hf_h245_masterSlaveDeterminationAck = -1;  /* MasterSlaveDeterminationAck */
static int hf_h245_masterSlaveDeterminationReject = -1;  /* MasterSlaveDeterminationReject */
static int hf_h245_terminalCapabilitySetAck = -1;  /* TerminalCapabilitySetAck */
static int hf_h245_terminalCapabilitySetReject = -1;  /* TerminalCapabilitySetReject */
static int hf_h245_openLogicalChannelAck = -1;    /* OpenLogicalChannelAck */
static int hf_h245_openLogicalChannelReject = -1;  /* OpenLogicalChannelReject */
static int hf_h245_closeLogicalChannelAck = -1;   /* CloseLogicalChannelAck */
static int hf_h245_requestChannelCloseAck = -1;   /* RequestChannelCloseAck */
static int hf_h245_requestChannelCloseReject = -1;  /* RequestChannelCloseReject */
static int hf_h245_multiplexEntrySendAck = -1;    /* MultiplexEntrySendAck */
static int hf_h245_multiplexEntrySendReject = -1;  /* MultiplexEntrySendReject */
static int hf_h245_requestMultiplexEntryAck = -1;  /* RequestMultiplexEntryAck */
static int hf_h245_requestMultiplexEntryReject = -1;  /* RequestMultiplexEntryReject */
static int hf_h245_requestModeAck = -1;           /* RequestModeAck */
static int hf_h245_requestModeReject = -1;        /* RequestModeReject */
static int hf_h245_roundTripDelayResponse = -1;   /* RoundTripDelayResponse */
static int hf_h245_maintenanceLoopAck = -1;       /* MaintenanceLoopAck */
static int hf_h245_maintenanceLoopReject = -1;    /* MaintenanceLoopReject */
static int hf_h245_communicationModeResponse = -1;  /* CommunicationModeResponse */
static int hf_h245_conferenceResponse = -1;       /* ConferenceResponse */
static int hf_h245_multilinkResponse = -1;        /* MultilinkResponse */
static int hf_h245_logicalChannelRateAcknowledge = -1;  /* LogicalChannelRateAcknowledge */
static int hf_h245_logicalChannelRateReject = -1;  /* LogicalChannelRateReject */
static int hf_h245_genericResponse = -1;          /* GenericMessage */
static int hf_h245_maintenanceLoopOffCommand = -1;  /* MaintenanceLoopOffCommand */
static int hf_h245_sendTerminalCapabilitySet = -1;  /* SendTerminalCapabilitySet */
static int hf_h245_encryptionCommand = -1;        /* EncryptionCommand */
static int hf_h245_flowControlCommand = -1;       /* FlowControlCommand */
static int hf_h245_endSessionCommand = -1;        /* EndSessionCommand */
static int hf_h245_miscellaneousCommand = -1;     /* MiscellaneousCommand */
static int hf_h245_communicationModeCommand = -1;  /* CommunicationModeCommand */
static int hf_h245_conferenceCommand = -1;        /* ConferenceCommand */
static int hf_h245_h223MultiplexReconfiguration = -1;  /* H223MultiplexReconfiguration */
static int hf_h245_newATMVCCommand = -1;          /* NewATMVCCommand */
static int hf_h245_mobileMultilinkReconfigurationCommand = -1;  /* MobileMultilinkReconfigurationCommand */
static int hf_h245_genericCommand = -1;           /* GenericMessage */
static int hf_h245_functionNotUnderstood = -1;    /* FunctionNotUnderstood */
static int hf_h245_masterSlaveDeterminationRelease = -1;  /* MasterSlaveDeterminationRelease */
static int hf_h245_terminalCapabilitySetRelease = -1;  /* TerminalCapabilitySetRelease */
static int hf_h245_openLogicalChannelConfirm = -1;  /* OpenLogicalChannelConfirm */
static int hf_h245_requestChannelCloseRelease = -1;  /* RequestChannelCloseRelease */
static int hf_h245_multiplexEntrySendRelease = -1;  /* MultiplexEntrySendRelease */
static int hf_h245_requestMultiplexEntryRelease = -1;  /* RequestMultiplexEntryRelease */
static int hf_h245_requestModeRelease = -1;       /* RequestModeRelease */
static int hf_h245_miscellaneousIndication = -1;  /* MiscellaneousIndication */
static int hf_h245_jitterIndication = -1;         /* JitterIndication */
static int hf_h245_h223SkewIndication = -1;       /* H223SkewIndication */
static int hf_h245_newATMVCIndication = -1;       /* NewATMVCIndication */
static int hf_h245_userInput = -1;                /* UserInputIndication */
static int hf_h245_h2250MaximumSkewIndication = -1;  /* H2250MaximumSkewIndication */
static int hf_h245_mcLocationIndication = -1;     /* MCLocationIndication */
static int hf_h245_conferenceIndication = -1;     /* ConferenceIndication */
static int hf_h245_vendorIdentification = -1;     /* VendorIdentification */
static int hf_h245_functionNotSupported = -1;     /* FunctionNotSupported */
static int hf_h245_multilinkIndication = -1;      /* MultilinkIndication */
static int hf_h245_logicalChannelRateRelease = -1;  /* LogicalChannelRateRelease */
static int hf_h245_flowControlIndication = -1;    /* FlowControlIndication */
static int hf_h245_mobileMultilinkReconfigurationIndication = -1;  /* MobileMultilinkReconfigurationIndication */
static int hf_h245_genericIndication = -1;        /* GenericMessage */
static int hf_h245_messageIdentifier = -1;        /* CapabilityIdentifier */
static int hf_h245_subMessageIdentifer = -1;      /* T_subMessageIdentifer */
static int hf_h245_messageContent = -1;           /* SEQUENCE_OF_GenericParameter */
static int hf_h245_messageContent_item = -1;      /* GenericParameter */
static int hf_h245_nonStandardData = -1;          /* NonStandardParameter */
static int hf_h245_nonStandardIdentifier = -1;    /* NonStandardIdentifier */
static int hf_h245_nsd_data = -1;                 /* OCTET_STRING */
static int hf_h245_object = -1;                   /* OBJECT_IDENTIFIER */
static int hf_h245_h221NonStandardID = -1;        /* H221NonStandardID */
static int hf_h245_t35CountryCode = -1;           /* T_t35CountryCode */
static int hf_h245_t35Extension = -1;             /* T_t35Extension */
static int hf_h245_manufacturerCode = -1;         /* T_manufacturerCode */
static int hf_h245_terminalType = -1;             /* INTEGER_0_255 */
static int hf_h245_statusDeterminationNumber = -1;  /* INTEGER_0_16777215 */
static int hf_h245_decision = -1;                 /* T_decision */
static int hf_h245_master = -1;                   /* NULL */
static int hf_h245_slave = -1;                    /* NULL */
static int hf_h245_msd_rej_cause = -1;            /* MasterSlaveDeterminationRejectCause */
static int hf_h245_identicalNumbers = -1;         /* NULL */
static int hf_h245_sequenceNumber = -1;           /* SequenceNumber */
static int hf_h245_protocolIdentifier = -1;       /* OBJECT_IDENTIFIER */
static int hf_h245_multiplexCapability = -1;      /* MultiplexCapability */
static int hf_h245_capabilityTable = -1;          /* SET_SIZE_1_256_OF_CapabilityTableEntry */
static int hf_h245_capabilityTable_item = -1;     /* CapabilityTableEntry */
static int hf_h245_capabilityDescriptors = -1;    /* SET_SIZE_1_256_OF_CapabilityDescriptor */
static int hf_h245_capabilityDescriptors_item = -1;  /* CapabilityDescriptor */
static int hf_h245_capabilityTableEntryNumber = -1;  /* CapabilityTableEntryNumber */
static int hf_h245_capability = -1;               /* Capability */
static int hf_h245_capabilityDescriptorNumber = -1;  /* CapabilityDescriptorNumber */
static int hf_h245_simultaneousCapabilities = -1;  /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
static int hf_h245_simultaneousCapabilities_item = -1;  /* AlternativeCapabilitySet */
static int hf_h245_AlternativeCapabilitySet_item = -1;  /* CapabilityTableEntryNumber */
static int hf_h245_tcs_rej_cause = -1;            /* TerminalCapabilitySetRejectCause */
static int hf_h245_unspecified = -1;              /* NULL */
static int hf_h245_undefinedTableEntryUsed = -1;  /* NULL */
static int hf_h245_descriptorCapacityExceeded = -1;  /* NULL */
static int hf_h245_tableEntryCapacityExceeded = -1;  /* T_tableEntryCapacityExceeded */
static int hf_h245_highestEntryNumberProcessed = -1;  /* CapabilityTableEntryNumber */
static int hf_h245_noneProcessed = -1;            /* NULL */
static int hf_h245_nonStandard = -1;              /* NonStandardParameter */
static int hf_h245_receiveVideoCapability = -1;   /* VideoCapability */
static int hf_h245_transmitVideoCapability = -1;  /* VideoCapability */
static int hf_h245_receiveAndTransmitVideoCapability = -1;  /* VideoCapability */
static int hf_h245_receiveAudioCapability = -1;   /* AudioCapability */
static int hf_h245_transmitAudioCapability = -1;  /* AudioCapability */
static int hf_h245_receiveAndTransmitAudioCapability = -1;  /* AudioCapability */
static int hf_h245_receiveDataApplicationCapability = -1;  /* DataApplicationCapability */
static int hf_h245_transmitDataApplicationCapability = -1;  /* DataApplicationCapability */
static int hf_h245_receiveAndTransmitDataApplicationCapability = -1;  /* DataApplicationCapability */
static int hf_h245_h233EncryptionTransmitCapability = -1;  /* BOOLEAN */
static int hf_h245_h233EncryptionReceiveCapability = -1;  /* T_h233EncryptionReceiveCapability */
static int hf_h245_h233IVResponseTime = -1;       /* INTEGER_0_255 */
static int hf_h245_conferenceCapability = -1;     /* ConferenceCapability */
static int hf_h245_h235SecurityCapability = -1;   /* H235SecurityCapability */
static int hf_h245_maxPendingReplacementFor = -1;  /* INTEGER_0_255 */
static int hf_h245_receiveUserInputCapability = -1;  /* UserInputCapability */
static int hf_h245_transmitUserInputCapability = -1;  /* UserInputCapability */
static int hf_h245_receiveAndTransmitUserInputCapability = -1;  /* UserInputCapability */
static int hf_h245_genericControlCapability = -1;  /* GenericCapability */
static int hf_h245_receiveMultiplexedStreamCapability = -1;  /* MultiplexedStreamCapability */
static int hf_h245_transmitMultiplexedStreamCapability = -1;  /* MultiplexedStreamCapability */
static int hf_h245_receiveAndTransmitMultiplexedStreamCapability = -1;  /* MultiplexedStreamCapability */
static int hf_h245_receiveRTPAudioTelephonyEventCapability = -1;  /* AudioTelephonyEventCapability */
static int hf_h245_receiveRTPAudioToneCapability = -1;  /* AudioToneCapability */
static int hf_h245_fecCapability = -1;            /* FECCapability */
static int hf_h245_multiplePayloadStreamCapability = -1;  /* MultiplePayloadStreamCapability */
static int hf_h245_encryptionAuthenticationAndIntegrity = -1;  /* EncryptionAuthenticationAndIntegrity */
static int hf_h245_mediaCapability = -1;          /* CapabilityTableEntryNumber */
static int hf_h245_h222Capability = -1;           /* H222Capability */
static int hf_h245_h223Capability = -1;           /* H223Capability */
static int hf_h245_v76Capability = -1;            /* V76Capability */
static int hf_h245_h2250Capability = -1;          /* H2250Capability */
static int hf_h245_genericMultiplexCapability = -1;  /* GenericCapability */
static int hf_h245_numberOfVCs = -1;              /* INTEGER_1_256 */
static int hf_h245_vcCapability = -1;             /* SET_OF_VCCapability */
static int hf_h245_vcCapability_item = -1;        /* VCCapability */
static int hf_h245_aal1 = -1;                     /* T_aal1 */
static int hf_h245_nullClockRecovery = -1;        /* BOOLEAN */
static int hf_h245_srtsClockRecovery_bool = -1;   /* BOOLEAN */
static int hf_h245_adaptiveClockRecovery = -1;    /* BOOLEAN */
static int hf_h245_nullErrorCorrection = -1;      /* BOOLEAN */
static int hf_h245_longInterleaver = -1;          /* BOOLEAN */
static int hf_h245_shortInterleaver = -1;         /* BOOLEAN */
static int hf_h245_errorCorrectionOnly = -1;      /* BOOLEAN */
static int hf_h245_structuredDataTransfer = -1;   /* BOOLEAN */
static int hf_h245_partiallyFilledCells = -1;     /* BOOLEAN */
static int hf_h245_aal5 = -1;                     /* T_aal5 */
static int hf_h245_forwardMaximumSDUSize = -1;    /* INTEGER_0_65535 */
static int hf_h245_backwardMaximumSDUSize = -1;   /* INTEGER_0_65535 */
static int hf_h245_transportStream_bool = -1;     /* BOOLEAN */
static int hf_h245_programStream = -1;            /* BOOLEAN */
static int hf_h245_availableBitRates = -1;        /* T_availableBitRates */
static int hf_h245_Avb_type = -1;                 /* Avb_type */
static int hf_h245_singleBitRate = -1;            /* INTEGER_1_65535 */
static int hf_h245_rangeOfBitRates = -1;          /* T_rangeOfBitRates */
static int hf_h245_lowerBitRate = -1;             /* INTEGER_1_65535 */
static int hf_h245_higherBitRate = -1;            /* INTEGER_1_65535 */
static int hf_h245_aal1ViaGateway = -1;           /* T_aal1ViaGateway */
static int hf_h245_gatewayAddress = -1;           /* SET_SIZE_1_256_OF_Q2931Address */
static int hf_h245_gatewayAddress_item = -1;      /* Q2931Address */
static int hf_h245_srtsClockRecoveryflag = -1;    /* BOOLEAN */
static int hf_h245_transportWithI_frames = -1;    /* BOOLEAN */
static int hf_h245_videoWithAL1 = -1;             /* BOOLEAN */
static int hf_h245_videoWithAL2 = -1;             /* BOOLEAN */
static int hf_h245_videoWithAL3 = -1;             /* BOOLEAN */
static int hf_h245_audioWithAL1 = -1;             /* BOOLEAN */
static int hf_h245_audioWithAL2 = -1;             /* BOOLEAN */
static int hf_h245_audioWithAL3 = -1;             /* BOOLEAN */
static int hf_h245_dataWithAL1 = -1;              /* BOOLEAN */
static int hf_h245_dataWithAL2 = -1;              /* BOOLEAN */
static int hf_h245_dataWithAL3 = -1;              /* BOOLEAN */
static int hf_h245_maximumAl2SDUSize = -1;        /* INTEGER_0_65535 */
static int hf_h245_maximumAl3SDUSize = -1;        /* INTEGER_0_65535 */
static int hf_h245_maximumDelayJitter = -1;       /* INTEGER_0_1023 */
static int hf_h245_h223MultiplexTableCapability = -1;  /* T_h223MultiplexTableCapability */
static int hf_h245_basic = -1;                    /* NULL */
static int hf_h245_enhanced = -1;                 /* T_enhanced */
static int hf_h245_maximumNestingDepth = -1;      /* INTEGER_1_15 */
static int hf_h245_maximumElementListSize = -1;   /* INTEGER_2_255 */
static int hf_h245_maximumSubElementListSize = -1;  /* INTEGER_2_255 */
static int hf_h245_maxMUXPDUSizeCapability = -1;  /* BOOLEAN */
static int hf_h245_nsrpSupport = -1;              /* BOOLEAN */
static int hf_h245_mobileOperationTransmitCapability = -1;  /* T_mobileOperationTransmitCapability */
static int hf_h245_modeChangeCapability = -1;     /* BOOLEAN */
static int hf_h245_h223AnnexA = -1;               /* BOOLEAN */
static int hf_h245_h223AnnexADoubleFlagFlag = -1;  /* BOOLEAN */
static int hf_h245_h223AnnexB = -1;               /* BOOLEAN */
static int hf_h245_h223AnnexBwithHeader = -1;     /* BOOLEAN */
static int hf_h245_h223AnnexCCapability = -1;     /* H223AnnexCCapability */
static int hf_h245_bitRate_1_19200 = -1;          /* INTEGER_1_19200 */
static int hf_h245_mobileMultilinkFrameCapability = -1;  /* T_mobileMultilinkFrameCapability */
static int hf_h245_maximumSampleSize = -1;        /* INTEGER_1_255 */
static int hf_h245_maximumPayloadLength = -1;     /* INTEGER_1_65025 */
static int hf_h245_videoWithAL1M = -1;            /* BOOLEAN */
static int hf_h245_videoWithAL2M = -1;            /* BOOLEAN */
static int hf_h245_videoWithAL3M = -1;            /* BOOLEAN */
static int hf_h245_audioWithAL1M = -1;            /* BOOLEAN */
static int hf_h245_audioWithAL2M = -1;            /* BOOLEAN */
static int hf_h245_audioWithAL3M = -1;            /* BOOLEAN */
static int hf_h245_dataWithAL1M = -1;             /* BOOLEAN */
static int hf_h245_dataWithAL2M = -1;             /* BOOLEAN */
static int hf_h245_dataWithAL3M = -1;             /* BOOLEAN */
static int hf_h245_alpduInterleaving = -1;        /* BOOLEAN */
static int hf_h245_maximumAL1MPDUSize = -1;       /* INTEGER_0_65535 */
static int hf_h245_maximumAL2MSDUSize = -1;       /* INTEGER_0_65535 */
static int hf_h245_maximumAL3MSDUSize = -1;       /* INTEGER_0_65535 */
static int hf_h245_rsCodeCapability = -1;         /* BOOLEAN */
static int hf_h245_suspendResumeCapabilitywAddress = -1;  /* BOOLEAN */
static int hf_h245_suspendResumeCapabilitywoAddress = -1;  /* BOOLEAN */
static int hf_h245_rejCapability = -1;            /* BOOLEAN */
static int hf_h245_sREJCapability = -1;           /* BOOLEAN */
static int hf_h245_mREJCapability = -1;           /* BOOLEAN */
static int hf_h245_crc8bitCapability = -1;        /* BOOLEAN */
static int hf_h245_crc16bitCapability = -1;       /* BOOLEAN */
static int hf_h245_crc32bitCapability = -1;       /* BOOLEAN */
static int hf_h245_uihCapability = -1;            /* BOOLEAN */
static int hf_h245_numOfDLCS = -1;                /* INTEGER_2_8191 */
static int hf_h245_twoOctetAddressFieldCapability = -1;  /* BOOLEAN */
static int hf_h245_loopBackTestCapability = -1;   /* BOOLEAN */
static int hf_h245_n401Capability = -1;           /* INTEGER_1_4095 */
static int hf_h245_maxWindowSizeCapability = -1;  /* INTEGER_1_127 */
static int hf_h245_v75Capability = -1;            /* V75Capability */
static int hf_h245_audioHeader = -1;              /* BOOLEAN */
static int hf_h245_maximumAudioDelayJitter = -1;  /* INTEGER_0_1023 */
static int hf_h245_receiveMultipointCapability = -1;  /* MultipointCapability */
static int hf_h245_transmitMultipointCapability = -1;  /* MultipointCapability */
static int hf_h245_receiveAndTransmitMultipointCapability = -1;  /* MultipointCapability */
static int hf_h245_mcCapability = -1;             /* T_mcCapability */
static int hf_h245_centralizedConferenceMC = -1;  /* BOOLEAN */
static int hf_h245_decentralizedConferenceMC = -1;  /* BOOLEAN */
static int hf_h245_rtcpVideoControlCapability = -1;  /* BOOLEAN */
static int hf_h245_mediaPacketizationCapability = -1;  /* MediaPacketizationCapability */
static int hf_h245_transportCapability = -1;      /* TransportCapability */
static int hf_h245_redundancyEncodingCapability = -1;  /* SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability */
static int hf_h245_redundancyEncodingCapability_item = -1;  /* RedundancyEncodingCapability */
static int hf_h245_logicalChannelSwitchingCapability = -1;  /* BOOLEAN */
static int hf_h245_t120DynamicPortCapability = -1;  /* BOOLEAN */
static int hf_h245_h261aVideoPacketization = -1;  /* BOOLEAN */
static int hf_h245_rtpPayloadType2 = -1;          /* SEQUENCE_SIZE_1_256_OF_RTPPayloadType */
static int hf_h245_rtpPayloadType2_item = -1;     /* RTPPayloadType */
static int hf_h245_qosMode = -1;                  /* QOSMode */
static int hf_h245_tokenRate = -1;                /* INTEGER_1_4294967295 */
static int hf_h245_bucketSize = -1;               /* INTEGER_1_4294967295 */
static int hf_h245_peakRate = -1;                 /* INTEGER_1_4294967295 */
static int hf_h245_minPoliced = -1;               /* INTEGER_1_4294967295 */
static int hf_h245_maxPktSize = -1;               /* INTEGER_1_4294967295 */
static int hf_h245_guaranteedQOS = -1;            /* NULL */
static int hf_h245_controlledLoad = -1;           /* NULL */
static int hf_h245_maxNTUSize = -1;               /* INTEGER_0_65535 */
static int hf_h245_atmUBR = -1;                   /* BOOLEAN */
static int hf_h245_atmrtVBR = -1;                 /* BOOLEAN */
static int hf_h245_atmnrtVBR = -1;                /* BOOLEAN */
static int hf_h245_atmABR = -1;                   /* BOOLEAN */
static int hf_h245_atmCBR = -1;                   /* BOOLEAN */
static int hf_h245_rsvpParameters = -1;           /* RSVPParameters */
static int hf_h245_atmParameters = -1;            /* ATMParameters */
static int hf_h245_ip_UDP = -1;                   /* NULL */
static int hf_h245_ip_TCP = -1;                   /* NULL */
static int hf_h245_atm_AAL5_UNIDIR = -1;          /* NULL */
static int hf_h245_atm_AAL5_BIDIR = -1;           /* NULL */
static int hf_h245_atm_AAL5_compressed = -1;      /* T_atm_AAL5_compressed */
static int hf_h245_variable_delta = -1;           /* BOOLEAN */
static int hf_h245_mediaTransport = -1;           /* MediaTransportType */
static int hf_h245_qOSCapabilities = -1;          /* SEQUENCE_SIZE_1_256_OF_QOSCapability */
static int hf_h245_qOSCapabilities_item = -1;     /* QOSCapability */
static int hf_h245_mediaChannelCapabilities = -1;  /* SEQUENCE_SIZE_1_256_OF_MediaChannelCapability */
static int hf_h245_mediaChannelCapabilities_item = -1;  /* MediaChannelCapability */
static int hf_h245_redundancyEncodingMethod = -1;  /* RedundancyEncodingMethod */
static int hf_h245_primaryEncoding = -1;          /* CapabilityTableEntryNumber */
static int hf_h245_secondaryEncoding2 = -1;       /* SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber */
static int hf_h245_secondaryEncoding2_item = -1;  /* CapabilityTableEntryNumber */
static int hf_h245_rtpAudioRedundancyEncoding = -1;  /* NULL */
static int hf_h245_rtpH263VideoRedundancyEncoding = -1;  /* RTPH263VideoRedundancyEncoding */
static int hf_h245_numberOfThreads = -1;          /* INTEGER_1_16 */
static int hf_h245_framesBetweenSyncPoints = -1;  /* INTEGER_1_256 */
static int hf_h245_frameToThreadMapping = -1;     /* T_frameToThreadMapping */
static int hf_h245_roundrobin = -1;               /* NULL */
static int hf_h245_custom = -1;                   /* SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping */
static int hf_h245_custom_item = -1;              /* RTPH263VideoRedundancyFrameMapping */
static int hf_h245_containedThreads = -1;         /* T_containedThreads */
static int hf_h245_containedThreads_item = -1;    /* INTEGER_0_15 */
static int hf_h245_threadNumber = -1;             /* INTEGER_0_15 */
static int hf_h245_frameSequence = -1;            /* T_frameSequence */
static int hf_h245_frameSequence_item = -1;       /* INTEGER_0_255 */
static int hf_h245_multicastCapability = -1;      /* BOOLEAN */
static int hf_h245_multiUniCastConference = -1;   /* BOOLEAN */
static int hf_h245_mediaDistributionCapability = -1;  /* SEQUENCE_OF_MediaDistributionCapability */
static int hf_h245_mediaDistributionCapability_item = -1;  /* MediaDistributionCapability */
static int hf_h245_centralizedControl = -1;       /* BOOLEAN */
static int hf_h245_distributedControl = -1;       /* BOOLEAN */
static int hf_h245_centralizedAudio = -1;         /* BOOLEAN */
static int hf_h245_distributedAudio = -1;         /* BOOLEAN */
static int hf_h245_centralizedVideo = -1;         /* BOOLEAN */
static int hf_h245_distributedVideo = -1;         /* BOOLEAN */
static int hf_h245_centralizedData = -1;          /* SEQUENCE_OF_DataApplicationCapability */
static int hf_h245_centralizedData_item = -1;     /* DataApplicationCapability */
static int hf_h245_distributedData = -1;          /* SEQUENCE_OF_DataApplicationCapability */
static int hf_h245_distributedData_item = -1;     /* DataApplicationCapability */
static int hf_h245_h261VideoCapability = -1;      /* H261VideoCapability */
static int hf_h245_h262VideoCapability = -1;      /* H262VideoCapability */
static int hf_h245_h263VideoCapability = -1;      /* H263VideoCapability */
static int hf_h245_is11172VideoCapability = -1;   /* IS11172VideoCapability */
static int hf_h245_genericVideoCapability = -1;   /* GenericCapability */
static int hf_h245_extendedVideoCapability = -1;  /* ExtendedVideoCapability */
static int hf_h245_videoCapability = -1;          /* SEQUENCE_OF_VideoCapability */
static int hf_h245_videoCapability_item = -1;     /* VideoCapability */
static int hf_h245_videoCapabilityExtension = -1;  /* SEQUENCE_OF_GenericCapability */
static int hf_h245_videoCapabilityExtension_item = -1;  /* GenericCapability */
static int hf_h245_qcifMPI_1_4 = -1;              /* INTEGER_1_4 */
static int hf_h245_cifMPI_1_4 = -1;               /* INTEGER_1_4 */
static int hf_h245_temporalSpatialTradeOffCapability = -1;  /* BOOLEAN */
static int hf_h245_maxBitRate_1_19200 = -1;       /* INTEGER_1_19200 */
static int hf_h245_stillImageTransmission = -1;   /* BOOLEAN */
static int hf_h245_videoBadMBsCap = -1;           /* BOOLEAN */
static int hf_h245_profileAndLevel_SPatML = -1;   /* BOOLEAN */
static int hf_h245_profileAndLevel_MPatLL = -1;   /* BOOLEAN */
static int hf_h245_profileAndLevel_MPatML = -1;   /* BOOLEAN */
static int hf_h245_profileAndLevel_MPatH_14 = -1;  /* BOOLEAN */
static int hf_h245_profileAndLevel_MPatHL = -1;   /* BOOLEAN */
static int hf_h245_profileAndLevel_SNRatLL = -1;  /* BOOLEAN */
static int hf_h245_profileAndLevel_SNRatML = -1;  /* BOOLEAN */
static int hf_h245_profileAndLevel_SpatialatH_14 = -1;  /* BOOLEAN */
static int hf_h245_profileAndLevel_HPatML = -1;   /* BOOLEAN */
static int hf_h245_profileAndLevel_HPatH_14 = -1;  /* BOOLEAN */
static int hf_h245_profileAndLevel_HPatHL = -1;   /* BOOLEAN */
static int hf_h245_videoBitRate = -1;             /* INTEGER_0_1073741823 */
static int hf_h245_vbvBufferSize = -1;            /* INTEGER_0_262143 */
static int hf_h245_samplesPerLine = -1;           /* INTEGER_0_16383 */
static int hf_h245_linesPerFrame = -1;            /* INTEGER_0_16383 */
static int hf_h245_framesPerSecond = -1;          /* INTEGER_0_15 */
static int hf_h245_luminanceSampleRate = -1;      /* INTEGER_0_4294967295 */
static int hf_h245_sqcifMPI_1_32 = -1;            /* INTEGER_1_32 */
static int hf_h245_qcifMPI = -1;                  /* INTEGER_1_32 */
static int hf_h245_cifMPI = -1;                   /* INTEGER_1_32 */
static int hf_h245_cif4MPI_1_32 = -1;             /* INTEGER_1_32 */
static int hf_h245_cif16MPI_1_32 = -1;            /* INTEGER_1_32 */
static int hf_h245_maxBitRate = -1;               /* INTEGER_1_192400 */
static int hf_h245_unrestrictedVector = -1;       /* BOOLEAN */
static int hf_h245_arithmeticCoding = -1;         /* BOOLEAN */
static int hf_h245_advancedPrediction = -1;       /* BOOLEAN */
static int hf_h245_pbFrames = -1;                 /* BOOLEAN */
static int hf_h245_hrd_B = -1;                    /* INTEGER_0_524287 */
static int hf_h245_bppMaxKb = -1;                 /* INTEGER_0_65535 */
static int hf_h245_slowSqcifMPI = -1;             /* INTEGER_1_3600 */
static int hf_h245_slowQcifMPI = -1;              /* INTEGER_1_3600 */
static int hf_h245_slowCifMPI = -1;               /* INTEGER_1_3600 */
static int hf_h245_slowCif4MPI = -1;              /* INTEGER_1_3600 */
static int hf_h245_slowCif16MPI = -1;             /* INTEGER_1_3600 */
static int hf_h245_errorCompensation = -1;        /* BOOLEAN */
static int hf_h245_enhancementLayerInfo = -1;     /* EnhancementLayerInfo */
static int hf_h245_h263Options = -1;              /* H263Options */
static int hf_h245_baseBitRateConstrained = -1;   /* BOOLEAN */
static int hf_h245_snrEnhancement = -1;           /* SET_SIZE_1_14_OF_EnhancementOptions */
static int hf_h245_snrEnhancement_item = -1;      /* EnhancementOptions */
static int hf_h245_spatialEnhancement = -1;       /* SET_SIZE_1_14_OF_EnhancementOptions */
static int hf_h245_spatialEnhancement_item = -1;  /* EnhancementOptions */
static int hf_h245_bPictureEnhancement = -1;      /* SET_SIZE_1_14_OF_BEnhancementParameters */
static int hf_h245_bPictureEnhancement_item = -1;  /* BEnhancementParameters */
static int hf_h245_enhancementOptions = -1;       /* EnhancementOptions */
static int hf_h245_numberOfBPictures = -1;        /* INTEGER_1_64 */
static int hf_h245_advancedIntraCodingMode = -1;  /* BOOLEAN */
static int hf_h245_deblockingFilterMode = -1;     /* BOOLEAN */
static int hf_h245_improvedPBFramesMode = -1;     /* BOOLEAN */
static int hf_h245_unlimitedMotionVectors = -1;   /* BOOLEAN */
static int hf_h245_fullPictureFreeze = -1;        /* BOOLEAN */
static int hf_h245_partialPictureFreezeAndRelease = -1;  /* BOOLEAN */
static int hf_h245_resizingPartPicFreezeAndRelease = -1;  /* BOOLEAN */
static int hf_h245_fullPictureSnapshot = -1;      /* BOOLEAN */
static int hf_h245_partialPictureSnapshot = -1;   /* BOOLEAN */
static int hf_h245_videoSegmentTagging = -1;      /* BOOLEAN */
static int hf_h245_progressiveRefinement = -1;    /* BOOLEAN */
static int hf_h245_dynamicPictureResizingByFour = -1;  /* BOOLEAN */
static int hf_h245_dynamicPictureResizingSixteenthPel = -1;  /* BOOLEAN */
static int hf_h245_dynamicWarpingHalfPel = -1;    /* BOOLEAN */
static int hf_h245_dynamicWarpingSixteenthPel = -1;  /* BOOLEAN */
static int hf_h245_independentSegmentDecoding = -1;  /* BOOLEAN */
static int hf_h245_slicesInOrder_NonRect = -1;    /* BOOLEAN */
static int hf_h245_slicesInOrder_Rect = -1;       /* BOOLEAN */
static int hf_h245_slicesNoOrder_NonRect = -1;    /* BOOLEAN */
static int hf_h245_slicesNoOrder_Rect = -1;       /* BOOLEAN */
static int hf_h245_alternateInterVLCMode = -1;    /* BOOLEAN */
static int hf_h245_modifiedQuantizationMode = -1;  /* BOOLEAN */
static int hf_h245_reducedResolutionUpdate = -1;  /* BOOLEAN */
static int hf_h245_transparencyParameters = -1;   /* TransparencyParameters */
static int hf_h245_separateVideoBackChannel = -1;  /* BOOLEAN */
static int hf_h245_refPictureSelection = -1;      /* RefPictureSelection */
static int hf_h245_customPictureClockFrequency = -1;  /* SET_SIZE_1_16_OF_CustomPictureClockFrequency */
static int hf_h245_customPictureClockFrequency_item = -1;  /* CustomPictureClockFrequency */
static int hf_h245_customPictureFormat = -1;      /* SET_SIZE_1_16_OF_CustomPictureFormat */
static int hf_h245_customPictureFormat_item = -1;  /* CustomPictureFormat */
static int hf_h245_modeCombos = -1;               /* SET_SIZE_1_16_OF_H263VideoModeCombos */
static int hf_h245_modeCombos_item = -1;          /* H263VideoModeCombos */
static int hf_h245_h263Version3Options = -1;      /* H263Version3Options */
static int hf_h245_presentationOrder = -1;        /* INTEGER_1_256 */
static int hf_h245_offset_x = -1;                 /* INTEGER_M262144_262143 */
static int hf_h245_offset_y = -1;                 /* INTEGER_M262144_262143 */
static int hf_h245_scale_x = -1;                  /* INTEGER_1_255 */
static int hf_h245_scale_y = -1;                  /* INTEGER_1_255 */
static int hf_h245_additionalPictureMemory = -1;  /* T_additionalPictureMemory */
static int hf_h245_sqcifAdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_qcifAdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_cifAdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_cif4AdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_cif16AdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_bigCpfAdditionalPictureMemory = -1;  /* INTEGER_1_256 */
static int hf_h245_videoMux = -1;                 /* BOOLEAN */
static int hf_h245_videoBackChannelSend = -1;     /* T_videoBackChannelSend */
static int hf_h245_none = -1;                     /* NULL */
static int hf_h245_ackMessageOnly = -1;           /* NULL */
static int hf_h245_nackMessageOnly = -1;          /* NULL */
static int hf_h245_ackOrNackMessageOnly = -1;     /* NULL */
static int hf_h245_ackAndNackMessage = -1;        /* NULL */
static int hf_h245_enhancedReferencePicSelect = -1;  /* T_enhancedReferencePicSelect */
static int hf_h245_subPictureRemovalParameters = -1;  /* T_subPictureRemovalParameters */
static int hf_h245_mpuHorizMBs = -1;              /* INTEGER_1_128 */
static int hf_h245_mpuVertMBs = -1;               /* INTEGER_1_72 */
static int hf_h245_mpuTotalNumber = -1;           /* INTEGER_1_65536 */
static int hf_h245_clockConversionCode = -1;      /* INTEGER_1000_1001 */
static int hf_h245_clockDivisor = -1;             /* INTEGER_1_127 */
static int hf_h245_sqcifMPI = -1;                 /* INTEGER_1_2048 */
static int hf_h245_qcifMPI_1_2048 = -1;           /* INTEGER_1_2048 */
static int hf_h245_cifMPI2_1_2048 = -1;           /* INTEGER_1_2048 */
static int hf_h245_cif4MPI = -1;                  /* INTEGER_1_2048 */
static int hf_h245_cif16MPI = -1;                 /* INTEGER_1_2048 */
static int hf_h245_maxCustomPictureWidth = -1;    /* INTEGER_1_2048 */
static int hf_h245_maxCustomPictureHeight = -1;   /* INTEGER_1_2048 */
static int hf_h245_minCustomPictureWidth = -1;    /* INTEGER_1_2048 */
static int hf_h245_minCustomPictureHeight = -1;   /* INTEGER_1_2048 */
static int hf_h245_mPI = -1;                      /* T_mPI */
static int hf_h245_standardMPI = -1;              /* INTEGER_1_31 */
static int hf_h245_customPCF = -1;                /* T_customPCF */
static int hf_h245_customPCF_item = -1;           /* T_customPCF_item */
static int hf_h245_customMPI = -1;                /* INTEGER_1_2048 */
static int hf_h245_pixelAspectInformation = -1;   /* T_pixelAspectInformation */
static int hf_h245_anyPixelAspectRatio = -1;      /* BOOLEAN */
static int hf_h245_pixelAspectCode = -1;          /* T_pixelAspectCode */
static int hf_h245_pixelAspectCode_item = -1;     /* INTEGER_1_14 */
static int hf_h245_extendedPAR = -1;              /* T_extendedPAR */
static int hf_h245_extendedPAR_item = -1;         /* T_extendedPAR_item */
static int hf_h245_width = -1;                    /* INTEGER_1_255 */
static int hf_h245_height = -1;                   /* INTEGER_1_255 */
static int hf_h245_h263VideoUncoupledModes = -1;  /* H263ModeComboFlags */
static int hf_h245_h263VideoCoupledModes = -1;    /* SET_SIZE_1_16_OF_H263ModeComboFlags */
static int hf_h245_h263VideoCoupledModes_item = -1;  /* H263ModeComboFlags */
static int hf_h245_referencePicSelect = -1;       /* BOOLEAN */
static int hf_h245_enhancedReferencePicSelectBool = -1;  /* BOOLEAN */
static int hf_h245_dataPartitionedSlices = -1;    /* BOOLEAN */
static int hf_h245_fixedPointIDCT0 = -1;          /* BOOLEAN */
static int hf_h245_interlacedFields = -1;         /* BOOLEAN */
static int hf_h245_currentPictureHeaderRepetition = -1;  /* BOOLEAN */
static int hf_h245_previousPictureHeaderRepetition = -1;  /* BOOLEAN */
static int hf_h245_nextPictureHeaderRepetition = -1;  /* BOOLEAN */
static int hf_h245_pictureNumberBoolean = -1;     /* BOOLEAN */
static int hf_h245_spareReferencePictures = -1;   /* BOOLEAN */
static int hf_h245_constrainedBitstream = -1;     /* BOOLEAN */
static int hf_h245_pictureRate = -1;              /* INTEGER_0_15 */
static int hf_h245_g711Alaw64k = -1;              /* INTEGER_1_256 */
static int hf_h245_g711Alaw56k = -1;              /* INTEGER_1_256 */
static int hf_h245_g711Ulaw64k = -1;              /* INTEGER_1_256 */
static int hf_h245_g711Ulaw56k = -1;              /* INTEGER_1_256 */
static int hf_h245_g722_64k = -1;                 /* INTEGER_1_256 */
static int hf_h245_g722_56k = -1;                 /* INTEGER_1_256 */
static int hf_h245_g722_48k = -1;                 /* INTEGER_1_256 */
static int hf_h245_g7231 = -1;                    /* T_g7231 */
static int hf_h245_maxAl_sduAudioFrames = -1;     /* INTEGER_1_256 */
static int hf_h245_silenceSuppression = -1;       /* BOOLEAN */
static int hf_h245_g728 = -1;                     /* INTEGER_1_256 */
static int hf_h245_g729 = -1;                     /* INTEGER_1_256 */
static int hf_h245_g729AnnexA = -1;               /* INTEGER_1_256 */
static int hf_h245_is11172AudioCapability = -1;   /* IS11172AudioCapability */
static int hf_h245_is13818AudioCapability = -1;   /* IS13818AudioCapability */
static int hf_h245_g729wAnnexB = -1;              /* INTEGER_1_256 */
static int hf_h245_g729AnnexAwAnnexB = -1;        /* INTEGER_1_256 */
static int hf_h245_g7231AnnexCCapability = -1;    /* G7231AnnexCCapability */
static int hf_h245_gsmFullRate = -1;              /* GSMAudioCapability */
static int hf_h245_gsmHalfRate = -1;              /* GSMAudioCapability */
static int hf_h245_gsmEnhancedFullRate = -1;      /* GSMAudioCapability */
static int hf_h245_genericAudioCapability = -1;   /* GenericCapability */
static int hf_h245_g729Extensions = -1;           /* G729Extensions */
static int hf_h245_vbd = -1;                      /* VBDCapability */
static int hf_h245_audioTelephonyEvent = -1;      /* NoPTAudioTelephonyEventCapability */
static int hf_h245_audioTone = -1;                /* NoPTAudioToneCapability */
static int hf_h245_audioUnit = -1;                /* INTEGER_1_256 */
static int hf_h245_annexA = -1;                   /* BOOLEAN */
static int hf_h245_annexB = -1;                   /* BOOLEAN */
static int hf_h245_annexD = -1;                   /* BOOLEAN */
static int hf_h245_annexE = -1;                   /* BOOLEAN */
static int hf_h245_annexF = -1;                   /* BOOLEAN */
static int hf_h245_annexG = -1;                   /* BOOLEAN */
static int hf_h245_annexH = -1;                   /* BOOLEAN */
static int hf_h245_g723AnnexCAudioMode = -1;      /* G723AnnexCAudioMode */
static int hf_h245_highRateMode0 = -1;            /* INTEGER_27_78 */
static int hf_h245_highRateMode1 = -1;            /* INTEGER_27_78 */
static int hf_h245_lowRateMode0 = -1;             /* INTEGER_23_66 */
static int hf_h245_lowRateMode1 = -1;             /* INTEGER_23_66 */
static int hf_h245_sidMode0 = -1;                 /* INTEGER_6_17 */
static int hf_h245_sidMode1 = -1;                 /* INTEGER_6_17 */
static int hf_h245_audioLayer1 = -1;              /* BOOLEAN */
static int hf_h245_audioLayer2 = -1;              /* BOOLEAN */
static int hf_h245_audioLayer3 = -1;              /* BOOLEAN */
static int hf_h245_audioSampling32k = -1;         /* BOOLEAN */
static int hf_h245_audioSampling44k1 = -1;        /* BOOLEAN */
static int hf_h245_audioSampling48k = -1;         /* BOOLEAN */
static int hf_h245_singleChannel = -1;            /* BOOLEAN */
static int hf_h245_twoChannels = -1;              /* BOOLEAN */
static int hf_h245_bitRate_1_448 = -1;            /* INTEGER_1_448 */
static int hf_h245_audioSampling16k = -1;         /* BOOLEAN */
static int hf_h245_audioSampling22k05 = -1;       /* BOOLEAN */
static int hf_h245_audioSampling24k = -1;         /* BOOLEAN */
static int hf_h245_threeChannels2_1 = -1;         /* BOOLEAN */
static int hf_h245_threeChannels3_0 = -1;         /* BOOLEAN */
static int hf_h245_fourChannels2_0_2_0 = -1;      /* BOOLEAN */
static int hf_h245_fourChannels2_2 = -1;          /* BOOLEAN */
static int hf_h245_fourChannels3_1 = -1;          /* BOOLEAN */
static int hf_h245_fiveChannels3_0_2_0 = -1;      /* BOOLEAN */
static int hf_h245_fiveChannels3_2 = -1;          /* BOOLEAN */
static int hf_h245_lowFrequencyEnhancement = -1;  /* BOOLEAN */
static int hf_h245_multilingual = -1;             /* BOOLEAN */
static int hf_h245_bitRate2_1_1130 = -1;          /* INTEGER_1_1130 */
static int hf_h245_audioUnitSize = -1;            /* INTEGER_1_256 */
static int hf_h245_comfortNoise = -1;             /* BOOLEAN */
static int hf_h245_scrambled = -1;                /* BOOLEAN */
static int hf_h245_vbd_cap_type = -1;             /* AudioCapability */
static int hf_h245_application = -1;              /* Application */
static int hf_h245_maxBitRate2_0_4294967295 = -1;  /* INTEGER_0_4294967295 */
static int hf_h245_t120 = -1;                     /* DataProtocolCapability */
static int hf_h245_dsm_cc = -1;                   /* DataProtocolCapability */
static int hf_h245_userData = -1;                 /* DataProtocolCapability */
static int hf_h245_t84 = -1;                      /* T_t84 */
static int hf_h245_t84Protocol = -1;              /* DataProtocolCapability */
static int hf_h245_t84Profile = -1;               /* T84Profile */
static int hf_h245_t434 = -1;                     /* DataProtocolCapability */
static int hf_h245_h224 = -1;                     /* DataProtocolCapability */
static int hf_h245_nlpid = -1;                    /* Nlpid */
static int hf_h245_dsvdControl = -1;              /* NULL */
static int hf_h245_h222DataPartitioning = -1;     /* DataProtocolCapability */
static int hf_h245_t30fax = -1;                   /* DataProtocolCapability */
static int hf_h245_t140 = -1;                     /* DataProtocolCapability */
static int hf_h245_t38fax = -1;                   /* T_t38fax */
static int hf_h245_t38FaxProtocol = -1;           /* DataProtocolCapability */
static int hf_h245_t38FaxProfile = -1;            /* T38FaxProfile */
static int hf_h245_genericDataCapability = -1;    /* GenericCapability */
static int hf_h245_v14buffered = -1;              /* NULL */
static int hf_h245_v42lapm = -1;                  /* NULL */
static int hf_h245_hdlcFrameTunnelling = -1;      /* NULL */
static int hf_h245_h310SeparateVCStack = -1;      /* NULL */
static int hf_h245_h310SingleVCStack = -1;        /* NULL */
static int hf_h245_transparent = -1;              /* NULL */
static int hf_h245_segmentationAndReassembly = -1;  /* NULL */
static int hf_h245_hdlcFrameTunnelingwSAR = -1;   /* NULL */
static int hf_h245_v120 = -1;                     /* NULL */
static int hf_h245_separateLANStack = -1;         /* NULL */
static int hf_h245_v76wCompression = -1;          /* T_v76wCompression */
static int hf_h245_transmitCompression = -1;      /* CompressionType */
static int hf_h245_receiveCompression = -1;       /* CompressionType */
static int hf_h245_transmitAndReceiveCompression = -1;  /* CompressionType */
static int hf_h245_tcp = -1;                      /* NULL */
static int hf_h245_udp = -1;                      /* NULL */
static int hf_h245_v42bis = -1;                   /* V42bis */
static int hf_h245_numberOfCodewords = -1;        /* INTEGER_1_65536 */
static int hf_h245_maximumStringLength = -1;      /* INTEGER_1_256 */
static int hf_h245_t84Unrestricted = -1;          /* NULL */
static int hf_h245_t84Restricted = -1;            /* T_t84Restricted */
static int hf_h245_qcif_bool = -1;                /* BOOLEAN */
static int hf_h245_cif_bool = -1;                 /* BOOLEAN */
static int hf_h245_ccir601Seq = -1;               /* BOOLEAN */
static int hf_h245_ccir601Prog = -1;              /* BOOLEAN */
static int hf_h245_hdtvSeq = -1;                  /* BOOLEAN */
static int hf_h245_hdtvProg = -1;                 /* BOOLEAN */
static int hf_h245_g3FacsMH200x100 = -1;          /* BOOLEAN */
static int hf_h245_g3FacsMH200x200 = -1;          /* BOOLEAN */
static int hf_h245_g4FacsMMR200x100 = -1;         /* BOOLEAN */
static int hf_h245_g4FacsMMR200x200 = -1;         /* BOOLEAN */
static int hf_h245_jbig200x200Seq = -1;           /* BOOLEAN */
static int hf_h245_jbig200x200Prog = -1;          /* BOOLEAN */
static int hf_h245_jbig300x300Seq = -1;           /* BOOLEAN */
static int hf_h245_jbig300x300Prog = -1;          /* BOOLEAN */
static int hf_h245_digPhotoLow = -1;              /* BOOLEAN */
static int hf_h245_digPhotoMedSeq = -1;           /* BOOLEAN */
static int hf_h245_digPhotoMedProg = -1;          /* BOOLEAN */
static int hf_h245_digPhotoHighSeq = -1;          /* BOOLEAN */
static int hf_h245_digPhotoHighProg = -1;         /* BOOLEAN */
static int hf_h245_fillBitRemoval = -1;           /* BOOLEAN */
static int hf_h245_transcodingJBIG = -1;          /* BOOLEAN */
static int hf_h245_transcodingMMR = -1;           /* BOOLEAN */
static int hf_h245_version = -1;                  /* INTEGER_0_255 */
static int hf_h245_t38FaxRateManagement = -1;     /* T38FaxRateManagement */
static int hf_h245_t38FaxUdpOptions = -1;         /* T38FaxUdpOptions */
static int hf_h245_t38FaxTcpOptions = -1;         /* T38FaxTcpOptions */
static int hf_h245_localTCF = -1;                 /* NULL */
static int hf_h245_transferredTCF = -1;           /* NULL */
static int hf_h245_t38FaxMaxBuffer = -1;          /* INTEGER */
static int hf_h245_t38FaxMaxDatagram = -1;        /* INTEGER */
static int hf_h245_t38FaxUdpEC = -1;              /* T_t38FaxUdpEC */
static int hf_h245_t38UDPFEC = -1;                /* NULL */
static int hf_h245_t38UDPRedundancy = -1;         /* NULL */
static int hf_h245_t38TCPBidirectionalMode = -1;  /* BOOLEAN */
static int hf_h245_nlpidProtocol = -1;            /* DataProtocolCapability */
static int hf_h245_nlpidData = -1;                /* OCTET_STRING */
static int hf_h245_encryptionCapability = -1;     /* EncryptionCapability */
static int hf_h245_authenticationCapability = -1;  /* AuthenticationCapability */
static int hf_h245_integrityCapability = -1;      /* IntegrityCapability */
static int hf_h245_EncryptionCapability_item = -1;  /* MediaEncryptionAlgorithm */
static int hf_h245_algorithm = -1;                /* OBJECT_IDENTIFIER */
static int hf_h245_antiSpamAlgorithm = -1;        /* OBJECT_IDENTIFIER */
static int hf_h245_ui_nonStandard = -1;           /* SEQUENCE_SIZE_1_16_OF_NonStandardParameter */
static int hf_h245_nonStandard_item = -1;         /* NonStandardParameter */
static int hf_h245_basicString = -1;              /* NULL */
static int hf_h245_iA5String = -1;                /* NULL */
static int hf_h245_generalString = -1;            /* NULL */
static int hf_h245_dtmf = -1;                     /* NULL */
static int hf_h245_hookflash = -1;                /* NULL */
static int hf_h245_extendedAlphanumericFlag = -1;  /* NULL */
static int hf_h245_encryptedBasicString = -1;     /* NULL */
static int hf_h245_encryptedIA5String = -1;       /* NULL */
static int hf_h245_encryptedGeneralString = -1;   /* NULL */
static int hf_h245_secureDTMF = -1;               /* NULL */
static int hf_h245_nonStandardParams = -1;        /* SEQUENCE_OF_NonStandardParameter */
static int hf_h245_nonStandardData_item = -1;     /* NonStandardParameter */
static int hf_h245_chairControlCapability = -1;   /* BOOLEAN */
static int hf_h245_videoIndicateMixingCapability = -1;  /* BOOLEAN */
static int hf_h245_multipointVisualizationCapability = -1;  /* BOOLEAN */
static int hf_h245_capabilityIdentifier = -1;     /* CapabilityIdentifier */
static int hf_h245_collapsing = -1;               /* SEQUENCE_OF_GenericParameter */
static int hf_h245_collapsing_item = -1;          /* GenericParameter */
static int hf_h245_nonCollapsing = -1;            /* SEQUENCE_OF_GenericParameter */
static int hf_h245_nonCollapsing_item = -1;       /* GenericParameter */
static int hf_h245_nonCollapsingRaw = -1;         /* OCTET_STRING */
static int hf_h245_transport = -1;                /* DataProtocolCapability */
static int hf_h245_standardOid = -1;              /* T_standard */
static int hf_h245_h221NonStandard = -1;          /* NonStandardParameter */
static int hf_h245_uuid = -1;                     /* OCTET_STRING_SIZE_16 */
static int hf_h245_domainBased = -1;              /* IA5String_SIZE_1_64 */
static int hf_h245_parameterIdentifier = -1;      /* ParameterIdentifier */
static int hf_h245_parameterValue = -1;           /* ParameterValue */
static int hf_h245_supersedes = -1;               /* SEQUENCE_OF_ParameterIdentifier */
static int hf_h245_supersedes_item = -1;          /* ParameterIdentifier */
static int hf_h245_standard = -1;                 /* INTEGER_0_127 */
static int hf_h245_logical = -1;                  /* NULL */
static int hf_h245_booleanArray = -1;             /* INTEGER_0_255 */
static int hf_h245_unsignedMin = -1;              /* INTEGER_0_65535 */
static int hf_h245_unsignedMax = -1;              /* INTEGER_0_65535 */
static int hf_h245_unsigned32Min = -1;            /* INTEGER_0_4294967295 */
static int hf_h245_unsigned32Max = -1;            /* INTEGER_0_4294967295 */
static int hf_h245_octetString = -1;              /* OCTET_STRING */
static int hf_h245_genericParameter = -1;         /* SEQUENCE_OF_GenericParameter */
static int hf_h245_genericParameter_item = -1;    /* GenericParameter */
static int hf_h245_multiplexFormat = -1;          /* MultiplexFormat */
static int hf_h245_controlOnMuxStream = -1;       /* BOOLEAN */
static int hf_h245_capabilityOnMuxStream = -1;    /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
static int hf_h245_capabilityOnMuxStream_item = -1;  /* AlternativeCapabilitySet */
static int hf_h245_dynamicRTPPayloadType = -1;    /* INTEGER_96_127 */
static int hf_h245_audioTelephoneEvent = -1;      /* GeneralString */
static int hf_h245_capabilities = -1;             /* SET_SIZE_1_256_OF_AlternativeCapabilitySet */
static int hf_h245_capabilities_item = -1;        /* AlternativeCapabilitySet */
static int hf_h245_fecc_rfc2733 = -1;             /* FECC_rfc2733 */
static int hf_h245_redundancyEncodingBool = -1;   /* BOOLEAN */
static int hf_h245_separateStreamBool = -1;       /* T_separateStream */
static int hf_h245_separatePort = -1;             /* BOOLEAN */
static int hf_h245_samePortBool = -1;             /* BOOLEAN */
static int hf_h245_forwardLogicalChannelNumber = -1;  /* LogicalChannelNumber */
static int hf_h245_forwardLogicalChannelParameters = -1;  /* T_forwardLogicalChannelParameters */
static int hf_h245_portNumber = -1;               /* INTEGER_0_65535 */
static int hf_h245_dataType = -1;                 /* DataType */
static int hf_h245_olc_forw_multiplexParameters = -1;  /* OLC_forw_multiplexParameters */
static int hf_h245_h222LogicalChannelParameters = -1;  /* H222LogicalChannelParameters */
static int hf_h245_h223LogicalChannelParameters = -1;  /* H223LogicalChannelParameters */
static int hf_h245_v76LogicalChannelParameters = -1;  /* V76LogicalChannelParameters */
static int hf_h245_h2250LogicalChannelParameters = -1;  /* H2250LogicalChannelParameters */
static int hf_h245_forwardLogicalChannelDependency = -1;  /* LogicalChannelNumber */
static int hf_h245_replacementFor = -1;           /* LogicalChannelNumber */
static int hf_h245_reverseLogicalChannelParameters = -1;  /* OLC_reverseLogicalChannelParameters */
static int hf_h245_olc_rev_multiplexParameter = -1;  /* OLC_rev_multiplexParameters */
static int hf_h245_reverseLogicalChannelDependency = -1;  /* LogicalChannelNumber */
static int hf_h245_separateStack = -1;            /* NetworkAccessParameters */
static int hf_h245_encryptionSync = -1;           /* EncryptionSync */
static int hf_h245_distribution = -1;             /* T_distribution */
static int hf_h245_unicast = -1;                  /* NULL */
static int hf_h245_multicast = -1;                /* NULL */
static int hf_h245_networkAddress = -1;           /* T_networkAddress */
static int hf_h245_q2931Address = -1;             /* Q2931Address */
static int hf_h245_e164Address = -1;              /* T_e164Address */
static int hf_h245_localAreaAddress = -1;         /* TransportAddress */
static int hf_h245_associateConference = -1;      /* BOOLEAN */
static int hf_h245_externalReference = -1;        /* OCTET_STRING_SIZE_1_255 */
static int hf_h245_t120SetupProcedure = -1;       /* T_t120SetupProcedure */
static int hf_h245_originateCall = -1;            /* NULL */
static int hf_h245_waitForCall = -1;              /* NULL */
static int hf_h245_issueQuery = -1;               /* NULL */
static int hf_h245_address = -1;                  /* T_address */
static int hf_h245_internationalNumber = -1;      /* NumericString_SIZE_1_16 */
static int hf_h245_nsapAddress = -1;              /* OCTET_STRING_SIZE_1_20 */
static int hf_h245_subaddress = -1;               /* OCTET_STRING_SIZE_1_20 */
static int hf_h245_audioHeaderPresent = -1;       /* BOOLEAN */
static int hf_h245_nullData = -1;                 /* NULL */
static int hf_h245_videoData = -1;                /* VideoCapability */
static int hf_h245_audioData = -1;                /* AudioCapability */
static int hf_h245_data = -1;                     /* DataApplicationCapability */
static int hf_h245_encryptionData = -1;           /* EncryptionMode */
static int hf_h245_h235Control = -1;              /* NonStandardParameter */
static int hf_h245_h235Media = -1;                /* H235Media */
static int hf_h245_multiplexedStream = -1;        /* MultiplexedStreamParameter */
static int hf_h245_redundancyEncoding = -1;       /* RedundancyEncoding */
static int hf_h245_multiplePayloadStream = -1;    /* MultiplePayloadStream */
static int hf_h245_fec = -1;                      /* FECData */
static int hf_h245_mediaType = -1;                /* T_mediaType */
static int hf_h245_resourceID = -1;               /* INTEGER_0_65535 */
static int hf_h245_subChannelID = -1;             /* INTEGER_0_8191 */
static int hf_h245_pcr_pid = -1;                  /* INTEGER_0_8191 */
static int hf_h245_programDescriptors = -1;       /* OCTET_STRING */
static int hf_h245_streamDescriptors = -1;        /* OCTET_STRING */
static int hf_h245_adaptationLayerType = -1;      /* T_adaptationLayerType */
static int hf_h245_al1Framed = -1;                /* NULL */
static int hf_h245_al1NotFramed = -1;             /* NULL */
static int hf_h245_al2WithoutSequenceNumbers = -1;  /* NULL */
static int hf_h245_al2WithSequenceNumbers = -1;   /* NULL */
static int hf_h245_al3 = -1;                      /* Al3 */
static int hf_h245_al1M = -1;                     /* H223AL1MParameters */
static int hf_h245_al2M = -1;                     /* H223AL2MParameters */
static int hf_h245_al3M = -1;                     /* H223AL3MParameters */
static int hf_h245_segmentableFlag = -1;          /* BOOLEAN */
static int hf_h245_controlFieldOctets = -1;       /* INTEGER_0_2 */
static int hf_h245_sendBufferSize = -1;           /* INTEGER_0_16777215 */
static int hf_h245_transferMode = -1;             /* T_transferMode */
static int hf_h245_framed = -1;                   /* NULL */
static int hf_h245_unframed = -1;                 /* NULL */
static int hf_h245_AL1HeaderFEC = -1;             /* AL1HeaderFEC */
static int hf_h245_sebch16_7 = -1;                /* NULL */
static int hf_h245_golay24_12 = -1;               /* NULL */
static int hf_h245_crcLength2 = -1;               /* AL1CrcLength */
static int hf_h245_crc4bit = -1;                  /* NULL */
static int hf_h245_crc12bit = -1;                 /* NULL */
static int hf_h245_crc20bit = -1;                 /* NULL */
static int hf_h245_crc28bit = -1;                 /* NULL */
static int hf_h245_crc8bit = -1;                  /* NULL */
static int hf_h245_crc16bit = -1;                 /* NULL */
static int hf_h245_crc32bit = -1;                 /* NULL */
static int hf_h245_crcNotUsed = -1;               /* NULL */
static int hf_h245_rcpcCodeRate = -1;             /* INTEGER_8_32 */
static int hf_h245_arqType = -1;                  /* ArqType */
static int hf_h245_alsduSplitting = -1;           /* BOOLEAN */
static int hf_h245_rsCodeCorrection = -1;         /* INTEGER_0_127 */
static int hf_h245_noArq = -1;                    /* NULL */
static int hf_h245_typeIArq = -1;                 /* H223AnnexCArqParameters */
static int hf_h245_typeIIArq = -1;                /* H223AnnexCArqParameters */
static int hf_h245_AL2HeaderFEC = -1;             /* AL2HeaderFEC */
static int hf_h245_sebch16_5 = -1;                /* NULL */
static int hf_h245_headerFormat = -1;             /* T_headerFormat */
static int hf_h245_crlength2 = -1;                /* AL3CrcLength */
static int hf_h245_numberOfRetransmissions = -1;  /* T_numberOfRetransmissions */
static int hf_h245_finite = -1;                   /* INTEGER_0_16 */
static int hf_h245_infinite = -1;                 /* NULL */
static int hf_h245_hdlcParameters = -1;           /* V76HDLCParameters */
static int hf_h245_suspendResume = -1;            /* T_suspendResume */
static int hf_h245_noSuspendResume = -1;          /* NULL */
static int hf_h245_suspendResumewAddress = -1;    /* NULL */
static int hf_h245_suspendResumewoAddress = -1;   /* NULL */
static int hf_h245_uIH = -1;                      /* BOOLEAN */
static int hf_h245_v76_mode = -1;                 /* V76LCP_mode */
static int hf_h245_eRM = -1;                      /* T_eRM */
static int hf_h245_windowSize = -1;               /* INTEGER_1_127 */
static int hf_h245_recovery = -1;                 /* T_recovery */
static int hf_h245_rej = -1;                      /* NULL */
static int hf_h245_sREJ = -1;                     /* NULL */
static int hf_h245_mSREJ = -1;                    /* NULL */
static int hf_h245_uNERM = -1;                    /* NULL */
static int hf_h245_v75Parameters = -1;            /* V75Parameters */
static int hf_h245_crcLength = -1;                /* CRCLength */
static int hf_h245_n401 = -1;                     /* INTEGER_1_4095 */
static int hf_h245_loopbackTestProcedure = -1;    /* BOOLEAN */
static int hf_h245_sessionID_0_255 = -1;          /* INTEGER_0_255 */
static int hf_h245_associatedSessionID = -1;      /* INTEGER_1_255 */
static int hf_h245_mediaChannel = -1;             /* T_mediaChannel */
static int hf_h245_mediaGuaranteedDelivery = -1;  /* BOOLEAN */
static int hf_h245_mediaControlChannel = -1;      /* T_mediaControlChannel */
static int hf_h245_mediaControlGuaranteedDelivery = -1;  /* BOOLEAN */
static int hf_h245_destination = -1;              /* TerminalLabel */
static int hf_h245_mediaPacketization = -1;       /* T_mediaPacketization */
static int hf_h245_h261aVideoPacketizationFlag = -1;  /* NULL */
static int hf_h245_rtpPayloadType = -1;           /* RTPPayloadType */
static int hf_h245_source = -1;                   /* TerminalLabel */
static int hf_h245_payloadDescriptor = -1;        /* T_payloadDescriptor */
static int hf_h245_rfc_number = -1;               /* INTEGER_1_32768_ */
static int hf_h245_oid = -1;                      /* OBJECT_IDENTIFIER */
static int hf_h245_payloadType = -1;              /* INTEGER_0_127 */
static int hf_h245_secondaryEncoding3 = -1;       /* DataType */
static int hf_h245_rtpRedundancyEncoding = -1;    /* T_rtpRedundancyEncoding */
static int hf_h245_primary = -1;                  /* RedundancyEncodingElement */
static int hf_h245_secondary = -1;                /* SEQUENCE_OF_RedundancyEncodingElement */
static int hf_h245_secondary_item = -1;           /* RedundancyEncodingElement */
static int hf_h245_elements = -1;                 /* SEQUENCE_OF_MultiplePayloadStreamElement */
static int hf_h245_elements_item = -1;            /* MultiplePayloadStreamElement */
static int hf_h245_rfc2733 = -1;                  /* RFC2733Data */
static int hf_h245_fec_data_mode = -1;            /* FECdata_mode */
static int hf_h245_redundancyEncodingFlag = -1;   /* NULL */
static int hf_h245_separateStream = -1;           /* SeparateStream */
static int hf_h245_differentPort = -1;            /* T_differentPort */
static int hf_h245_protectedSessionID = -1;       /* INTEGER_1_255 */
static int hf_h245_protectedPayloadType = -1;     /* INTEGER_0_127 */
static int hf_h245_samePort = -1;                 /* T_samePort */
static int hf_h245_unicastAddress = -1;           /* UnicastAddress */
static int hf_h245_multicastAddress = -1;         /* MulticastAddress */
static int hf_h245_iPAddress = -1;                /* T_iPAddress */
static int hf_h245_ip4_network = -1;              /* Ipv4_network */
static int hf_h245_tsapIdentifier = -1;           /* TsapIdentifier */
static int hf_h245_iPXAddress = -1;               /* T_iPXAddress */
static int hf_h245_node = -1;                     /* OCTET_STRING_SIZE_6 */
static int hf_h245_netnum = -1;                   /* OCTET_STRING_SIZE_4 */
static int hf_h245_ipx_tsapIdentifier = -1;       /* OCTET_STRING_SIZE_2 */
static int hf_h245_iP6Address = -1;               /* T_iP6Address */
static int hf_h245_ip6_network = -1;              /* OCTET_STRING_SIZE_16 */
static int hf_h245_ipv6_tsapIdentifier = -1;      /* INTEGER_0_65535 */
static int hf_h245_netBios = -1;                  /* OCTET_STRING_SIZE_16 */
static int hf_h245_iPSourceRouteAddress = -1;     /* T_iPSourceRouteAddress */
static int hf_h245_routing = -1;                  /* T_routing */
static int hf_h245_strict = -1;                   /* NULL */
static int hf_h245_loose = -1;                    /* NULL */
static int hf_h245_network = -1;                  /* OCTET_STRING_SIZE_4 */
static int hf_h245_iPSrcRoute_tsapIdentifier = -1;  /* INTEGER_0_65535 */
static int hf_h245_route = -1;                    /* T_route */
static int hf_h245_route_item = -1;               /* OCTET_STRING_SIZE_4 */
static int hf_h245_nsap = -1;                     /* OCTET_STRING_SIZE_1_20 */
static int hf_h245_nonStandardAddress = -1;       /* NonStandardParameter */
static int hf_h245_mIPAddress = -1;               /* MIPAddress */
static int hf_h245_mip4_network = -1;             /* OCTET_STRING_SIZE_4 */
static int hf_h245_multicast_tsapIdentifier = -1;  /* INTEGER_0_65535 */
static int hf_h245_mIP6Address = -1;              /* MIP6Address */
static int hf_h245_mip6_network = -1;             /* OCTET_STRING_SIZE_16 */
static int hf_h245_multicast_IPv6_tsapIdentifier = -1;  /* INTEGER_0_65535 */
static int hf_h245_synchFlag = -1;                /* INTEGER_0_255 */
static int hf_h245_h235Key = -1;                  /* OCTET_STRING_SIZE_1_65535 */
static int hf_h245_escrowentry = -1;              /* SEQUENCE_SIZE_1_256_OF_EscrowData */
static int hf_h245_escrowentry_item = -1;         /* EscrowData */
static int hf_h245_escrowID = -1;                 /* OBJECT_IDENTIFIER */
static int hf_h245_escrowValue = -1;              /* BIT_STRING_SIZE_1_65535 */
static int hf_h245_olc_ack_reverseLogicalChannelParameters = -1;  /* OLC_ack_reverseLogicalChannelParameters */
static int hf_h245_reverseLogicalChannelNumber = -1;  /* LogicalChannelNumber */
static int hf_h245_olc_ack_multiplexParameters = -1;  /* T_multiplexParameters */
static int hf_h245_forwardMultiplexAckParameters = -1;  /* T_forwardMultiplexAckParameters */
static int hf_h245_h2250LogicalChannelAckParameters = -1;  /* H2250LogicalChannelAckParameters */
static int hf_h245_olc_rej_cause = -1;            /* OpenLogicalChannelRejectCause */
static int hf_h245_unsuitableReverseParameters = -1;  /* NULL */
static int hf_h245_dataTypeNotSupported = -1;     /* NULL */
static int hf_h245_dataTypeNotAvailable = -1;     /* NULL */
static int hf_h245_unknownDataType = -1;          /* NULL */
static int hf_h245_dataTypeALCombinationNotSupported = -1;  /* NULL */
static int hf_h245_multicastChannelNotAllowed = -1;  /* NULL */
static int hf_h245_insufficientBandwidth = -1;    /* NULL */
static int hf_h245_separateStackEstablishmentFailed = -1;  /* NULL */
static int hf_h245_invalidSessionID = -1;         /* NULL */
static int hf_h245_masterSlaveConflict = -1;      /* NULL */
static int hf_h245_waitForCommunicationMode = -1;  /* NULL */
static int hf_h245_invalidDependentChannel = -1;  /* NULL */
static int hf_h245_replacementForRejected = -1;   /* NULL */
static int hf_h245_sessionID = -1;                /* INTEGER_1_255 */
static int hf_h245_ack_mediaChannel = -1;         /* Ack_mediaChannel */
static int hf_h245_ack_mediaControlChannel = -1;  /* Ack_mediaControlChannel */
static int hf_h245_flowControlToZero = -1;        /* BOOLEAN */
static int hf_h245_CloseLogicalChannel_source = -1;  /* T_source */
static int hf_h245_user = -1;                     /* NULL */
static int hf_h245_lcse = -1;                     /* NULL */
static int hf_h245_clc_reason = -1;               /* clc_reason */
static int hf_h245_unknown = -1;                  /* NULL */
static int hf_h245_reopen = -1;                   /* NULL */
static int hf_h245_reservationFailure = -1;       /* NULL */
static int hf_h245_qosCapability = -1;            /* QOSCapability */
static int hf_h245_reason = -1;                   /* T_reason */
static int hf_h245_normal = -1;                   /* NULL */
static int hf_h245_req_chan_clos_rej_cause = -1;  /* RequestChannelCloseRejectCause */
static int hf_h245_multiplexEntryDescriptors = -1;  /* SET_SIZE_1_15_OF_MultiplexEntryDescriptor */
static int hf_h245_multiplexEntryDescriptors_item = -1;  /* MultiplexEntryDescriptor */
static int hf_h245_multiplexTableEntryNumber = -1;  /* MultiplexTableEntryNumber */
static int hf_h245_elementList = -1;              /* SEQUENCE_SIZE_1_256_OF_MultiplexElement */
static int hf_h245_elementList_item = -1;         /* MultiplexElement */
static int hf_h245_Me_type = -1;                  /* Me_type */
static int hf_h245_logicalChannelNum = -1;        /* INTEGER_0_65535 */
static int hf_h245_subElementList = -1;           /* SEQUENCE_SIZE_2_255_OF_MultiplexElement */
static int hf_h245_subElementList_item = -1;      /* MultiplexElement */
static int hf_h245_me_repeatCount = -1;           /* ME_repeatCount */
static int hf_h245_finite_1_65535 = -1;           /* INTEGER_1_65535 */
static int hf_h245_untilClosingFlag = -1;         /* NULL */
static int hf_h245_multiplexTableEntryNumbers = -1;  /* SET_SIZE_1_15_OF_MultiplexTableEntryNumber */
static int hf_h245_multiplexTableEntryNumber_item = -1;  /* MultiplexTableEntryNumber */
static int hf_h245_rejectionDescriptions1 = -1;   /* SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions */
static int hf_h245_rejectionDescriptions1_item = -1;  /* MultiplexEntryRejectionDescriptions */
static int hf_h245_mux_rej_cause = -1;            /* MultiplexEntryRejectionDescriptionsCause */
static int hf_h245_unspecifiedCause = -1;         /* NULL */
static int hf_h245_descriptorTooComplex = -1;     /* NULL */
static int hf_h245_entryNumbers = -1;             /* SET_SIZE_1_15_OF_MultiplexTableEntryNumber */
static int hf_h245_entryNumbers_item = -1;        /* MultiplexTableEntryNumber */
static int hf_h245_rejectionDescriptions2 = -1;   /* SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions */
static int hf_h245_rejectionDescriptions2_item = -1;  /* RequestMultiplexEntryRejectionDescriptions */
static int hf_h245_req_mux_rej_cause = -1;        /* RequestMultiplexEntryRejectionDescriptionsCause */
static int hf_h245_requestedModes = -1;           /* SEQUENCE_SIZE_1_256_OF_ModeDescription */
static int hf_h245_requestedModes_item = -1;      /* ModeDescription */
static int hf_h245_req_mode_ack_response = -1;    /* Req_mode_ack_response */
static int hf_h245_willTransmitMostPreferredMode = -1;  /* NULL */
static int hf_h245_willTransmitLessPreferredMode = -1;  /* NULL */
static int hf_h245_req_rej_cause = -1;            /* RequestModeRejectCause */
static int hf_h245_modeUnavailable = -1;          /* NULL */
static int hf_h245_multipointConstraint = -1;     /* NULL */
static int hf_h245_requestDenied = -1;            /* NULL */
static int hf_h245_ModeDescription_item = -1;     /* ModeElement */
static int hf_h245_videoMode = -1;                /* VideoMode */
static int hf_h245_audioMode = -1;                /* AudioMode */
static int hf_h245_dataMode = -1;                 /* DataMode */
static int hf_h245_encryptionMode = -1;           /* EncryptionMode */
static int hf_h245_h235Mode = -1;                 /* H235Mode */
static int hf_h245_multiplexedStreamMode = -1;    /* MultiplexedStreamParameter */
static int hf_h245_redundancyEncodingDTMode = -1;  /* RedundancyEncodingDTMode */
static int hf_h245_multiplePayloadStreamMode = -1;  /* MultiplePayloadStreamMode */
static int hf_h245_fecMode = -1;                  /* FECMode */
static int hf_h245_type = -1;                     /* ModeElementType */
static int hf_h245_h223ModeParameters = -1;       /* H223ModeParameters */
static int hf_h245_v76ModeParameters = -1;        /* V76ModeParameters */
static int hf_h245_h2250ModeParameters = -1;      /* H2250ModeParameters */
static int hf_h245_genericModeParameters = -1;    /* GenericCapability */
static int hf_h245_multiplexedStreamModeParameters = -1;  /* MultiplexedStreamModeParameters */
static int hf_h245_logicalChannelNumber = -1;     /* LogicalChannelNumber */
static int hf_h245_mediaMode = -1;                /* T_mediaMode */
static int hf_h245_prmary_dtmode = -1;            /* RedundancyEncodingDTModeElement */
static int hf_h245_secondary2 = -1;               /* SEQUENCE_OF_RedundancyEncodingDTModeElement */
static int hf_h245_secondary2_item = -1;          /* RedundancyEncodingDTModeElement */
static int hf_h245_re_type = -1;                  /* Re_type */
static int hf_h245_mpsmElements = -1;             /* SEQUENCE_OF_MultiplePayloadStreamElementMode */
static int hf_h245_mpsmElements_item = -1;        /* MultiplePayloadStreamElementMode */
static int hf_h245_rfc2733Mode = -1;              /* T_rfc2733Mode */
static int hf_h245_fec_mode = -1;                 /* FEC_mode */
static int hf_h245_adaptationLayer = -1;          /* AdaptationLayerType */
static int hf_h245_redundancyEncodingMode = -1;   /* RedundancyEncodingMode */
static int hf_h245_secondaryEncoding = -1;        /* T_secondaryEncoding */
static int hf_h245_h261VideoMode = -1;            /* H261VideoMode */
static int hf_h245_h262VideoMode = -1;            /* H262VideoMode */
static int hf_h245_h263VideoMode = -1;            /* H263VideoMode */
static int hf_h245_is11172VideoMode = -1;         /* IS11172VideoMode */
static int hf_h245_genericVideoMode = -1;         /* GenericCapability */
static int hf_h245_h261_resolution = -1;          /* H261Resolution */
static int hf_h245_qcif = -1;                     /* NULL */
static int hf_h245_cif = -1;                      /* NULL */
static int hf_h245_profileAndLevel = -1;          /* T_profileAndLevel */
static int hf_h245_profileAndLevel_SPatMLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_MPatLLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_MPatMLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_MPatH_14Mode = -1;  /* NULL */
static int hf_h245_profileAndLevel_MPatHLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_SNRatLLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_SNRatMLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_SpatialatH_14Mode = -1;  /* NULL */
static int hf_h245_profileAndLevel_HPatMLMode = -1;  /* NULL */
static int hf_h245_profileAndLevel_HPatH_14Mode = -1;  /* NULL */
static int hf_h245_profileAndLevel_HPatHLMode = -1;  /* NULL */
static int hf_h245_h263_resolution = -1;          /* H263Resolution */
static int hf_h245_sqcif = -1;                    /* NULL */
static int hf_h245_cif4 = -1;                     /* NULL */
static int hf_h245_cif16 = -1;                    /* NULL */
static int hf_h245_custom_res = -1;               /* NULL */
static int hf_h245_g711Alaw64k_mode = -1;         /* NULL */
static int hf_h245_g711Alaw56k_mode = -1;         /* NULL */
static int hf_h245_g711Ulaw64k_mode = -1;         /* NULL */
static int hf_h245_g711Ulaw56k_mode = -1;         /* NULL */
static int hf_h245_g722_64k_mode = -1;            /* NULL */
static int hf_h245_g722_56k_mode = -1;            /* NULL */
static int hf_h245_g722_48k_mode = -1;            /* NULL */
static int hf_h245_g728_mode = -1;                /* NULL */
static int hf_h245_g729_mode = -1;                /* NULL */
static int hf_h245_g729AnnexA_mode = -1;          /* NULL */
static int hf_h245_g7231_mode = -1;               /* Mode_g7231 */
static int hf_h245_noSilenceSuppressionLowRate = -1;  /* NULL */
static int hf_h245_noSilenceSuppressionHighRate = -1;  /* NULL */
static int hf_h245_silenceSuppressionLowRate = -1;  /* NULL */
static int hf_h245_silenceSuppressionHighRate = -1;  /* NULL */
static int hf_h245_is11172AudioMode = -1;         /* IS11172AudioMode */
static int hf_h245_is13818AudioMode = -1;         /* IS13818AudioMode */
static int hf_h245_g7231AnnexCMode = -1;          /* G7231AnnexCMode */
static int hf_h245_genericAudioMode = -1;         /* GenericCapability */
static int hf_h245_vbd_mode = -1;                 /* VBDMode */
static int hf_h245_audioLayer = -1;               /* T_audioLayer */
static int hf_h245_audioLayer1Mode = -1;          /* NULL */
static int hf_h245_audioLayer2Mode = -1;          /* NULL */
static int hf_h245_audioLayer3Mode = -1;          /* NULL */
static int hf_h245_audioSampling = -1;            /* T_audioSampling */
static int hf_h245_audioSampling32kMode = -1;     /* NULL */
static int hf_h245_audioSampling44k1Mode = -1;    /* NULL */
static int hf_h245_audioSampling48kMode = -1;     /* NULL */
static int hf_h245_is11172multichannelType = -1;  /* IS11172_multichannelType */
static int hf_h245_singleChannelMode = -1;        /* NULL */
static int hf_h245_twoChannelStereo = -1;         /* NULL */
static int hf_h245_twoChannelDual = -1;           /* NULL */
static int hf_h245_audioLayerMode = -1;           /* IS13818AudioLayer */
static int hf_h245_audioSamplingMode = -1;        /* IS13818AudioSampling */
static int hf_h245_audioSampling16kMode = -1;     /* NULL */
static int hf_h245_audioSampling22k05Mode = -1;   /* NULL */
static int hf_h245_audioSampling24kMode = -1;     /* NULL */
static int hf_h245_is13818MultichannelType = -1;  /* IS13818MultichannelType */
static int hf_h245_threeChannels2_1Mode = -1;     /* NULL */
static int hf_h245_threeChannels3_0Mode = -1;     /* NULL */
static int hf_h245_fourChannels2_0_2_0Mode = -1;  /* NULL */
static int hf_h245_fourChannels2_2Mode = -1;      /* NULL */
static int hf_h245_fourChannels3_1Mode = -1;      /* NULL */
static int hf_h245_fiveChannels3_0_2_0Mode = -1;  /* NULL */
static int hf_h245_fiveChannels3_2Mode = -1;      /* NULL */
static int hf_h245_vbd_type = -1;                 /* AudioMode */
static int hf_h245_datamodeapplication = -1;      /* DataModeApplication */
static int hf_h245_t84DataProtocolCapability = -1;  /* DataProtocolCapability */
static int hf_h245_t38faxDataProtocolCapability = -1;  /* T38faxApp */
static int hf_h245_genericDataMode = -1;          /* GenericCapability */
static int hf_h245_bitRate_0_4294967295 = -1;     /* INTEGER_0_4294967295 */
static int hf_h245_h233Encryption = -1;           /* NULL */
static int hf_h245_mlr_type = -1;                 /* Mlr_type */
static int hf_h245_systemLoop = -1;               /* NULL */
static int hf_h245_mediaLoop = -1;                /* LogicalChannelNumber */
static int hf_h245_logicalChannelLoop = -1;       /* LogicalChannelNumber */
static int hf_h245_Mla_type = -1;                 /* Mla_type */
static int hf_h245_mlrej_type = -1;               /* Mlrej_type */
static int hf_h245_maintloop_rej_cause = -1;      /* MaintenanceLoopRejectCause */
static int hf_h245_canNotPerformLoop = -1;        /* NULL */
static int hf_h245_communicationModeTable = -1;   /* SET_SIZE_1_256_OF_CommunicationModeTableEntry */
static int hf_h245_communicationModeTable_item = -1;  /* CommunicationModeTableEntry */
static int hf_h245_terminalLabel = -1;            /* TerminalLabel */
static int hf_h245_sessionDescription = -1;       /* BMPString_SIZE_1_128 */
static int hf_h245_entryDataType = -1;            /* T_dataType */
static int hf_h245_cm_mediaChannel = -1;          /* Cm_mediaChannel */
static int hf_h245_cm_mediaControlChannel = -1;   /* TransportAddress */
static int hf_h245_sessionDependency = -1;        /* INTEGER_1_255 */
static int hf_h245_terminalListRequest = -1;      /* NULL */
static int hf_h245_makeMeChair = -1;              /* NULL */
static int hf_h245_cancelMakeMeChair = -1;        /* NULL */
static int hf_h245_dropTerminal = -1;             /* TerminalLabel */
static int hf_h245_requestTerminalID = -1;        /* TerminalLabel */
static int hf_h245_enterH243Password = -1;        /* NULL */
static int hf_h245_enterH243TerminalID = -1;      /* NULL */
static int hf_h245_enterH243ConferenceID = -1;    /* NULL */
static int hf_h245_enterExtensionAddress = -1;    /* NULL */
static int hf_h245_requestChairTokenOwner = -1;   /* NULL */
static int hf_h245_requestTerminalCertificate = -1;  /* T_requestTerminalCertificate */
static int hf_h245_certSelectionCriteria = -1;    /* CertSelectionCriteria */
static int hf_h245_sRandom = -1;                  /* INTEGER_1_4294967295 */
static int hf_h245_broadcastMyLogicalChannel = -1;  /* LogicalChannelNumber */
static int hf_h245_makeTerminalBroadcaster = -1;  /* TerminalLabel */
static int hf_h245_sendThisSource = -1;           /* TerminalLabel */
static int hf_h245_requestAllTerminalIDs = -1;    /* NULL */
static int hf_h245_remoteMCRequest = -1;          /* RemoteMCRequest */
static int hf_h245_CertSelectionCriteria_item = -1;  /* Criteria */
static int hf_h245_field = -1;                    /* OBJECT_IDENTIFIER */
static int hf_h245_value = -1;                    /* OCTET_STRING_SIZE_1_65535 */
static int hf_h245_mcuNumber = -1;                /* McuNumber */
static int hf_h245_terminalNumber = -1;           /* TerminalNumber */
static int hf_h245_mCTerminalIDResponse = -1;     /* T_mCTerminalIDResponse */
static int hf_h245_terminalID = -1;               /* TerminalID */
static int hf_h245_terminalIDResponse = -1;       /* T_terminalIDResponse */
static int hf_h245_conferenceIDResponse = -1;     /* T_conferenceIDResponse */
static int hf_h245_conferenceID = -1;             /* ConferenceID */
static int hf_h245_passwordResponse = -1;         /* T_passwordResponse */
static int hf_h245_password = -1;                 /* Password */
static int hf_h245_terminalListResponse = -1;     /* SET_SIZE_1_256_OF_TerminalLabel */
static int hf_h245_terminalListResponse_item = -1;  /* TerminalLabel */
static int hf_h245_videoCommandReject = -1;       /* NULL */
static int hf_h245_terminalDropReject = -1;       /* NULL */
static int hf_h245_makeMeChairResponse = -1;      /* T_makeMeChairResponse */
static int hf_h245_grantedChairToken = -1;        /* NULL */
static int hf_h245_deniedChairToken = -1;         /* NULL */
static int hf_h245_extensionAddressResponse = -1;  /* T_extensionAddressResponse */
static int hf_h245_extensionAddress = -1;         /* TerminalID */
static int hf_h245_chairTokenOwnerResponse = -1;  /* T_chairTokenOwnerResponse */
static int hf_h245_terminalCertificateResponse = -1;  /* T_terminalCertificateResponse */
static int hf_h245_certificateResponse = -1;      /* OCTET_STRING_SIZE_1_65535 */
static int hf_h245_broadcastMyLogicalChannelResponse = -1;  /* T_broadcastMyLogicalChannelResponse */
static int hf_h245_grantedBroadcastMyLogicalChannel = -1;  /* NULL */
static int hf_h245_deniedBroadcastMyLogicalChannel = -1;  /* NULL */
static int hf_h245_makeTerminalBroadcasterResponse = -1;  /* T_makeTerminalBroadcasterResponse */
static int hf_h245_grantedMakeTerminalBroadcaster = -1;  /* NULL */
static int hf_h245_deniedMakeTerminalBroadcaster = -1;  /* NULL */
static int hf_h245_sendThisSourceResponse = -1;   /* T_sendThisSourceResponse */
static int hf_h245_grantedSendThisSource = -1;    /* NULL */
static int hf_h245_deniedSendThisSource = -1;     /* NULL */
static int hf_h245_requestAllTerminalIDsResponse = -1;  /* RequestAllTerminalIDsResponse */
static int hf_h245_remoteMCResponse = -1;         /* RemoteMCResponse */
static int hf_h245_terminalInformation = -1;      /* SEQUENCE_OF_TerminalInformation */
static int hf_h245_terminalInformation_item = -1;  /* TerminalInformation */
static int hf_h245_masterActivate = -1;           /* NULL */
static int hf_h245_slaveActivate = -1;            /* NULL */
static int hf_h245_deActivate = -1;               /* NULL */
static int hf_h245_accept = -1;                   /* NULL */
static int hf_h245_reject = -1;                   /* T_reject */
static int hf_h245_functionNotSupportedFlag = -1;  /* NULL */
static int hf_h245_callInformationReq = -1;       /* CallInformationReq */
static int hf_h245_maxNumberOfAdditionalConnections = -1;  /* INTEGER_1_65535 */
static int hf_h245_addConnectionReq = -1;         /* AddConnectionReq */
static int hf_h245_dialingInformation = -1;       /* DialingInformation */
static int hf_h245_removeConnectionReq = -1;      /* RemoveConnectionReq */
static int hf_h245_maximumHeaderIntervalReq = -1;  /* MaximumHeaderIntervalReq */
static int hf_h245_requestType = -1;              /* T_requestType */
static int hf_h245_currentIntervalInformation = -1;  /* NULL */
static int hf_h245_requestedInterval = -1;        /* INTEGER_0_65535 */
static int hf_h245_callInformationResp = -1;      /* CallInformationResp */
static int hf_h245_callAssociationNumber = -1;    /* INTEGER_0_4294967295 */
static int hf_h245_addConnectionResp = -1;        /* AddConnectionResp */
static int hf_h245_responseCode = -1;             /* T_responseCode */
static int hf_h245_accepted = -1;                 /* NULL */
static int hf_h245_rejected = -1;                 /* T_rejected */
static int hf_h245_connectionsNotAvailable = -1;  /* NULL */
static int hf_h245_userRejected = -1;             /* NULL */
static int hf_h245_removeConnectionResp = -1;     /* RemoveConnectionResp */
static int hf_h245_maximumHeaderIntervalResp = -1;  /* MaximumHeaderIntervalResp */
static int hf_h245_currentInterval = -1;          /* INTEGER_0_65535 */
static int hf_h245_connectionIdentifier = -1;     /* ConnectionIdentifier */
static int hf_h245_crcDesired = -1;               /* T_crcDesired */
static int hf_h245_excessiveError = -1;           /* T_excessiveError */
static int hf_h245_differential = -1;             /* SET_SIZE_1_65535_OF_DialingInformationNumber */
static int hf_h245_differential_item = -1;        /* DialingInformationNumber */
static int hf_h245_infoNotAvailable = -1;         /* INTEGER_1_65535 */
static int hf_h245_networkAddressNum = -1;        /* NumericString_SIZE_0_40 */
static int hf_h245_subAddress = -1;               /* IA5String_SIZE_1_40 */
static int hf_h245_networkType = -1;              /* SET_SIZE_1_255_OF_DialingInformationNetworkType */
static int hf_h245_networkType_item = -1;         /* DialingInformationNetworkType */
static int hf_h245_n_isdn = -1;                   /* NULL */
static int hf_h245_gstn = -1;                     /* NULL */
static int hf_h245_mobile = -1;                   /* NULL */
static int hf_h245_channelTag = -1;               /* INTEGER_0_4294967295 */
static int hf_h245_sequenceNum = -1;              /* INTEGER_0_4294967295 */
static int hf_h245_maximumBitRate = -1;           /* MaximumBitRate */
static int hf_h245_rejectReason = -1;             /* LogicalChannelRateRejectReason */
static int hf_h245_currentMaximumBitRate = -1;    /* MaximumBitRate */
static int hf_h245_undefinedReason = -1;          /* NULL */
static int hf_h245_insufficientResources = -1;    /* NULL */
static int hf_h245_specificRequest = -1;          /* T_specificRequest */
static int hf_h245_multiplexCapabilityBool = -1;  /* BOOLEAN */
static int hf_h245_capabilityTableEntryNumbers = -1;  /* SET_SIZE_1_65535_OF_CapabilityTableEntryNumber */
static int hf_h245_capabilityTableEntryNumbers_item = -1;  /* CapabilityTableEntryNumber */
static int hf_h245_capabilityDescriptorNumbers = -1;  /* SET_SIZE_1_256_OF_CapabilityDescriptorNumber */
static int hf_h245_capabilityDescriptorNumbers_item = -1;  /* CapabilityDescriptorNumber */
static int hf_h245_genericRequestFlag = -1;       /* NULL */
static int hf_h245_encryptionSE = -1;             /* OCTET_STRING */
static int hf_h245_encryptionIVRequest = -1;      /* NULL */
static int hf_h245_encryptionAlgorithmID = -1;    /* T_encryptionAlgorithmID */
static int hf_h245_h233AlgorithmIdentifier = -1;  /* SequenceNumber */
static int hf_h245_associatedAlgorithm = -1;      /* NonStandardParameter */
static int hf_h245_scope = -1;                    /* Scope */
static int hf_h245_restriction = -1;              /* Restriction */
static int hf_h245_wholeMultiplex = -1;           /* NULL */
static int hf_h245_Res_maximumBitRate = -1;       /* INTEGER_0_16777215 */
static int hf_h245_noRestriction = -1;            /* NULL */
static int hf_h245_disconnect = -1;               /* NULL */
static int hf_h245_gstnOptions = -1;              /* T_gstnOptions */
static int hf_h245_telephonyMode = -1;            /* NULL */
static int hf_h245_v8bis = -1;                    /* NULL */
static int hf_h245_v34DSVD = -1;                  /* NULL */
static int hf_h245_v34DuplexFAX = -1;             /* NULL */
static int hf_h245_v34H324 = -1;                  /* NULL */
static int hf_h245_isdnOptions = -1;              /* T_isdnOptions */
static int hf_h245_v140 = -1;                     /* NULL */
static int hf_h245_terminalOnHold = -1;           /* NULL */
static int hf_h245_cancelBroadcastMyLogicalChannel = -1;  /* LogicalChannelNumber */
static int hf_h245_cancelMakeTerminalBroadcaster = -1;  /* NULL */
static int hf_h245_cancelSendThisSource = -1;     /* NULL */
static int hf_h245_dropConference = -1;           /* NULL */
static int hf_h245_substituteConferenceIDCommand = -1;  /* SubstituteConferenceIDCommand */
static int hf_h245_conferenceIdentifier = -1;     /* OCTET_STRING_SIZE_16 */
static int hf_h245_masterToSlave = -1;            /* NULL */
static int hf_h245_slaveToMaster = -1;            /* NULL */
static int hf_h245_mc_type = -1;                  /* Mc_type */
static int hf_h245_equaliseDelay = -1;            /* NULL */
static int hf_h245_zeroDelay = -1;                /* NULL */
static int hf_h245_multipointModeCommand = -1;    /* NULL */
static int hf_h245_cancelMultipointModeCommand = -1;  /* NULL */
static int hf_h245_videoFreezePicture = -1;       /* NULL */
static int hf_h245_videoFastUpdatePicture = -1;   /* NULL */
static int hf_h245_videoFastUpdateGOB = -1;       /* T_videoFastUpdateGOB */
static int hf_h245_firstGOB = -1;                 /* INTEGER_0_17 */
static int hf_h245_numberOfGOBs = -1;             /* INTEGER_1_18 */
static int hf_h245_videoTemporalSpatialTradeOff = -1;  /* INTEGER_0_31 */
static int hf_h245_videoSendSyncEveryGOB = -1;    /* NULL */
static int hf_h245_videoSendSyncEveryGOBCancel = -1;  /* NULL */
static int hf_h245_videoFastUpdateMB = -1;        /* T_videoFastUpdateMB */
static int hf_h245_firstGOB_0_255 = -1;           /* INTEGER_0_255 */
static int hf_h245_firstMB_1_8192 = -1;           /* INTEGER_1_8192 */
static int hf_h245_numberOfMBs = -1;              /* INTEGER_1_8192 */
static int hf_h245_maxH223MUXPDUsize = -1;        /* INTEGER_1_65535 */
static int hf_h245_encryptionUpdate = -1;         /* EncryptionSync */
static int hf_h245_encryptionUpdateRequest = -1;  /* EncryptionUpdateRequest */
static int hf_h245_switchReceiveMediaOff = -1;    /* NULL */
static int hf_h245_switchReceiveMediaOn = -1;     /* NULL */
static int hf_h245_progressiveRefinementStart = -1;  /* T_progressiveRefinementStart */
static int hf_h245_repeatCount = -1;              /* RepeatCount */
static int hf_h245_progressiveRefinementAbortOne = -1;  /* NULL */
static int hf_h245_progressiveRefinementAbortContinuous = -1;  /* NULL */
static int hf_h245_videoBadMBs = -1;              /* T_videoBadMBs */
static int hf_h245_firstMB = -1;                  /* INTEGER_1_9216 */
static int hf_h245_numberOfMBs1_1_9216 = -1;      /* INTEGER_1_9216 */
static int hf_h245_temporalReference = -1;        /* INTEGER_0_1023 */
static int hf_h245_lostPicture = -1;              /* SEQUENCE_OF_PictureReference */
static int hf_h245_lostPicture_item = -1;         /* PictureReference */
static int hf_h245_lostPartialPicture = -1;       /* T_lostPartialPicture */
static int hf_h245_pictureReference = -1;         /* PictureReference */
static int hf_h245_recoveryReferencePicture = -1;  /* SEQUENCE_OF_PictureReference */
static int hf_h245_recoveryReferencePicture_item = -1;  /* PictureReference */
static int hf_h245_encryptionUpdateCommand = -1;  /* T_encryptionUpdateCommand */
static int hf_h245_encryptionUpdateAck = -1;      /* T_encryptionUpdateAck */
static int hf_h245_direction = -1;                /* EncryptionUpdateDirection */
static int hf_h245_doOneProgression = -1;         /* NULL */
static int hf_h245_doContinuousProgressions = -1;  /* NULL */
static int hf_h245_doOneIndependentProgression = -1;  /* NULL */
static int hf_h245_doContinuousIndependentProgressions = -1;  /* NULL */
static int hf_h245_secureChannel = -1;            /* BOOLEAN */
static int hf_h245_sharedSecret = -1;             /* BOOLEAN */
static int hf_h245_certProtectedKey = -1;         /* BOOLEAN */
static int hf_h245_keyProtectionMethod = -1;      /* KeyProtectionMethod */
static int hf_h245_pictureNumber = -1;            /* INTEGER_0_1023 */
static int hf_h245_longTermPictureIndex = -1;     /* INTEGER_0_255 */
static int hf_h245_h223ModeChange = -1;           /* T_h223ModeChange */
static int hf_h245_toLevel0 = -1;                 /* NULL */
static int hf_h245_toLevel1 = -1;                 /* NULL */
static int hf_h245_toLevel2 = -1;                 /* NULL */
static int hf_h245_toLevel2withOptionalHeader = -1;  /* NULL */
static int hf_h245_h223AnnexADoubleFlag = -1;     /* T_h223AnnexADoubleFlag */
static int hf_h245_start = -1;                    /* NULL */
static int hf_h245_stop = -1;                     /* NULL */
static int hf_h245_bitRate = -1;                  /* INTEGER_1_65535 */
static int hf_h245_bitRateLockedToPCRClock = -1;  /* BOOLEAN */
static int hf_h245_bitRateLockedToNetworkClock = -1;  /* BOOLEAN */
static int hf_h245_cmd_aal = -1;                  /* Cmd_aal */
static int hf_h245_cmd_aal1 = -1;                 /* Cmd_aal1 */
static int hf_h245_cmd_clockRecovery = -1;        /* Cmd_clockRecovery */
static int hf_h245_nullClockRecoveryflag = -1;    /* NULL */
static int hf_h245_srtsClockRecovery = -1;        /* NULL */
static int hf_h245_adaptiveClockRecoveryFlag = -1;  /* NULL */
static int hf_h245_cmd_errorCorrection = -1;      /* Cmd_errorCorrection */
static int hf_h245_nullErrorCorrectionFlag = -1;  /* NULL */
static int hf_h245_longInterleaverFlag = -1;      /* NULL */
static int hf_h245_shortInterleaverFlag = -1;     /* NULL */
static int hf_h245_errorCorrectionOnlyFlag = -1;  /* NULL */
static int hf_h245_cmd_aal5 = -1;                 /* Cmd_aal5 */
static int hf_h245_cmd_multiplex = -1;            /* Cmd_multiplex */
static int hf_h245_noMultiplex = -1;              /* NULL */
static int hf_h245_transportStream = -1;          /* NULL */
static int hf_h245_programStreamFlag = -1;        /* NULL */
static int hf_h245_cmd_reverseParameters = -1;    /* Cmd_reverseParameters */
static int hf_h245_cmdr_multiplex = -1;           /* CmdR_multiplex */
static int hf_h245_sampleSize = -1;               /* INTEGER_1_255 */
static int hf_h245_samplesPerFrame = -1;          /* INTEGER_1_255 */
static int hf_h245_status = -1;                   /* T_status */
static int hf_h245_synchronized = -1;             /* NULL */
static int hf_h245_reconfiguration = -1;          /* NULL */
static int hf_h245_fns_cause = -1;                /* FunctionNotSupportedCause */
static int hf_h245_syntaxError = -1;              /* NULL */
static int hf_h245_semanticError = -1;            /* NULL */
static int hf_h245_unknownFunction = -1;          /* NULL */
static int hf_h245_returnedFunction = -1;         /* OCTET_STRING */
static int hf_h245_sbeNumber = -1;                /* INTEGER_0_9 */
static int hf_h245_terminalNumberAssign = -1;     /* TerminalLabel */
static int hf_h245_terminalJoinedConference = -1;  /* TerminalLabel */
static int hf_h245_terminalLeftConference = -1;   /* TerminalLabel */
static int hf_h245_seenByAtLeastOneOther = -1;    /* NULL */
static int hf_h245_cancelSeenByAtLeastOneOther = -1;  /* NULL */
static int hf_h245_seenByAll = -1;                /* NULL */
static int hf_h245_cancelSeenByAll = -1;          /* NULL */
static int hf_h245_terminalYouAreSeeing = -1;     /* TerminalLabel */
static int hf_h245_requestForFloor = -1;          /* NULL */
static int hf_h245_withdrawChairToken = -1;       /* NULL */
static int hf_h245_floorRequested = -1;           /* TerminalLabel */
static int hf_h245_terminalYouAreSeeingInSubPictureNumber = -1;  /* TerminalYouAreSeeingInSubPictureNumber */
static int hf_h245_videoIndicateCompose = -1;     /* VideoIndicateCompose */
static int hf_h245_subPictureNumber = -1;         /* INTEGER_0_255 */
static int hf_h245_compositionNumber = -1;        /* INTEGER_0_255 */
static int hf_h245_mi_type = -1;                  /* Mi_type */
static int hf_h245_logicalChannelActive = -1;     /* NULL */
static int hf_h245_logicalChannelInactive = -1;   /* NULL */
static int hf_h245_multipointConference = -1;     /* NULL */
static int hf_h245_cancelMultipointConference = -1;  /* NULL */
static int hf_h245_multipointZeroComm = -1;       /* NULL */
static int hf_h245_cancelMultipointZeroComm = -1;  /* NULL */
static int hf_h245_multipointSecondaryStatus = -1;  /* NULL */
static int hf_h245_cancelMultipointSecondaryStatus = -1;  /* NULL */
static int hf_h245_videoIndicateReadyToActivate = -1;  /* NULL */
static int hf_h245_videoNotDecodedMBs = -1;       /* T_videoNotDecodedMBs */
static int hf_h245_temporalReference_0_255 = -1;  /* INTEGER_0_255 */
static int hf_h245_estimatedReceivedJitterMantissa = -1;  /* INTEGER_0_3 */
static int hf_h245_estimatedReceivedJitterExponent = -1;  /* INTEGER_0_7 */
static int hf_h245_skippedFrameCount = -1;        /* INTEGER_0_15 */
static int hf_h245_additionalDecoderBuffer = -1;  /* INTEGER_0_262143 */
static int hf_h245_logicalChannelNumber1 = -1;    /* LogicalChannelNumber */
static int hf_h245_logicalChannelNumber2 = -1;    /* LogicalChannelNumber */
static int hf_h245_skew = -1;                     /* INTEGER_0_4095 */
static int hf_h245_maximumSkew = -1;              /* INTEGER_0_4095 */
static int hf_h245_signalAddress = -1;            /* TransportAddress */
static int hf_h245_vendor = -1;                   /* NonStandardIdentifier */
static int hf_h245_productNumber = -1;            /* OCTET_STRING_SIZE_1_256 */
static int hf_h245_versionNumber = -1;            /* OCTET_STRING_SIZE_1_256 */
static int hf_h245_ind_aal = -1;                  /* Ind_aal */
static int hf_h245_ind_aal1 = -1;                 /* Ind_aal1 */
static int hf_h245_ind_clockRecovery = -1;        /* Ind_clockRecovery */
static int hf_h245_ind_errorCorrection = -1;      /* Ind_errorCorrection */
static int hf_h245_ind_aal5 = -1;                 /* Ind_aal5 */
static int hf_h245_ind_multiplex = -1;            /* Ind_multiplex */
static int hf_h245_ind_reverseParameters = -1;    /* Ind_reverseParameters */
static int hf_h245_indr_multiplex = -1;           /* IndR_multiplex */
static int hf_h245_iv8 = -1;                      /* IV8 */
static int hf_h245_iv16 = -1;                     /* IV16 */
static int hf_h245_iv = -1;                       /* OCTET_STRING */
static int hf_h245_alphanumeric = -1;             /* GeneralString */
static int hf_h245_userInputSupportIndication = -1;  /* T_userInputSupportIndication */
static int hf_h245_signal = -1;                   /* T_signal */
static int hf_h245_signalType = -1;               /* IA5String_SIZE_1 */
static int hf_h245_duration = -1;                 /* INTEGER_1_65535 */
static int hf_h245_rtp = -1;                      /* Rtp */
static int hf_h245_rtpPayloadIndication = -1;     /* NULL */
static int hf_h245_paramS = -1;                   /* Params */
static int hf_h245_encryptedSignalType = -1;      /* OCTET_STRING_SIZE_1 */
static int hf_h245_signalUpdate = -1;             /* T_signalUpdate */
static int hf_h245_si_rtp = -1;                   /* Si_rtp */
static int hf_h245_extendedAlphanumeric = -1;     /* T_extendedAlphanumeric */
static int hf_h245_encryptedAlphanumeric = -1;    /* EncryptedAlphanumeric */
static int hf_h245_algorithmOID = -1;             /* OBJECT_IDENTIFIER */
static int hf_h245_encrypted = -1;                /* OCTET_STRING */
static int hf_h245_timestamp = -1;                /* INTEGER_0_4294967295 */
static int hf_h245_expirationTime = -1;           /* INTEGER_0_4294967295 */

/*--- End of included file: packet-h245-hf.c ---*/


/* Initialize the subtree pointers */

/*--- Included file: packet-h245-ett.c ---*/

static gint ett_h245_MultimediaSystemControlMessage = -1;
static gint ett_h245_RequestMessage = -1;
static gint ett_h245_ResponseMessage = -1;
static gint ett_h245_CommandMessage = -1;
static gint ett_h245_IndicationMessage = -1;
static gint ett_h245_GenericMessage = -1;
static gint ett_h245_SEQUENCE_OF_GenericParameter = -1;
static gint ett_h245_NonStandardMessage = -1;
static gint ett_h245_NonStandardParameter = -1;
static gint ett_h245_NonStandardIdentifier = -1;
static gint ett_h245_H221NonStandardID = -1;
static gint ett_h245_MasterSlaveDetermination = -1;
static gint ett_h245_MasterSlaveDeterminationAck = -1;
static gint ett_h245_T_decision = -1;
static gint ett_h245_MasterSlaveDeterminationReject = -1;
static gint ett_h245_MasterSlaveDeterminationRejectCause = -1;
static gint ett_h245_MasterSlaveDeterminationRelease = -1;
static gint ett_h245_TerminalCapabilitySet = -1;
static gint ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry = -1;
static gint ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor = -1;
static gint ett_h245_CapabilityTableEntry = -1;
static gint ett_h245_CapabilityDescriptor = -1;
static gint ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet = -1;
static gint ett_h245_AlternativeCapabilitySet = -1;
static gint ett_h245_TerminalCapabilitySetAck = -1;
static gint ett_h245_TerminalCapabilitySetReject = -1;
static gint ett_h245_TerminalCapabilitySetRejectCause = -1;
static gint ett_h245_T_tableEntryCapacityExceeded = -1;
static gint ett_h245_TerminalCapabilitySetRelease = -1;
static gint ett_h245_Capability = -1;
static gint ett_h245_T_h233EncryptionReceiveCapability = -1;
static gint ett_h245_H235SecurityCapability = -1;
static gint ett_h245_MultiplexCapability = -1;
static gint ett_h245_H222Capability = -1;
static gint ett_h245_SET_OF_VCCapability = -1;
static gint ett_h245_VCCapability = -1;
static gint ett_h245_T_aal1 = -1;
static gint ett_h245_T_aal5 = -1;
static gint ett_h245_T_availableBitRates = -1;
static gint ett_h245_Avb_type = -1;
static gint ett_h245_T_rangeOfBitRates = -1;
static gint ett_h245_T_aal1ViaGateway = -1;
static gint ett_h245_SET_SIZE_1_256_OF_Q2931Address = -1;
static gint ett_h245_H223Capability = -1;
static gint ett_h245_T_h223MultiplexTableCapability = -1;
static gint ett_h245_T_enhanced = -1;
static gint ett_h245_T_mobileOperationTransmitCapability = -1;
static gint ett_h245_T_mobileMultilinkFrameCapability = -1;
static gint ett_h245_H223AnnexCCapability = -1;
static gint ett_h245_V76Capability = -1;
static gint ett_h245_V75Capability = -1;
static gint ett_h245_H2250Capability = -1;
static gint ett_h245_T_mcCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability = -1;
static gint ett_h245_MediaPacketizationCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType = -1;
static gint ett_h245_RSVPParameters = -1;
static gint ett_h245_QOSMode = -1;
static gint ett_h245_ATMParameters = -1;
static gint ett_h245_QOSCapability = -1;
static gint ett_h245_MediaTransportType = -1;
static gint ett_h245_T_atm_AAL5_compressed = -1;
static gint ett_h245_MediaChannelCapability = -1;
static gint ett_h245_TransportCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability = -1;
static gint ett_h245_RedundancyEncodingCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber = -1;
static gint ett_h245_RedundancyEncodingMethod = -1;
static gint ett_h245_RTPH263VideoRedundancyEncoding = -1;
static gint ett_h245_T_frameToThreadMapping = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping = -1;
static gint ett_h245_T_containedThreads = -1;
static gint ett_h245_RTPH263VideoRedundancyFrameMapping = -1;
static gint ett_h245_T_frameSequence = -1;
static gint ett_h245_MultipointCapability = -1;
static gint ett_h245_SEQUENCE_OF_MediaDistributionCapability = -1;
static gint ett_h245_MediaDistributionCapability = -1;
static gint ett_h245_SEQUENCE_OF_DataApplicationCapability = -1;
static gint ett_h245_VideoCapability = -1;
static gint ett_h245_ExtendedVideoCapability = -1;
static gint ett_h245_SEQUENCE_OF_VideoCapability = -1;
static gint ett_h245_SEQUENCE_OF_GenericCapability = -1;
static gint ett_h245_H261VideoCapability = -1;
static gint ett_h245_H262VideoCapability = -1;
static gint ett_h245_H263VideoCapability = -1;
static gint ett_h245_EnhancementLayerInfo = -1;
static gint ett_h245_SET_SIZE_1_14_OF_EnhancementOptions = -1;
static gint ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters = -1;
static gint ett_h245_BEnhancementParameters = -1;
static gint ett_h245_EnhancementOptions = -1;
static gint ett_h245_H263Options = -1;
static gint ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency = -1;
static gint ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat = -1;
static gint ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos = -1;
static gint ett_h245_TransparencyParameters = -1;
static gint ett_h245_RefPictureSelection = -1;
static gint ett_h245_T_additionalPictureMemory = -1;
static gint ett_h245_T_videoBackChannelSend = -1;
static gint ett_h245_T_enhancedReferencePicSelect = -1;
static gint ett_h245_T_subPictureRemovalParameters = -1;
static gint ett_h245_CustomPictureClockFrequency = -1;
static gint ett_h245_CustomPictureFormat = -1;
static gint ett_h245_T_mPI = -1;
static gint ett_h245_T_customPCF = -1;
static gint ett_h245_T_customPCF_item = -1;
static gint ett_h245_T_pixelAspectInformation = -1;
static gint ett_h245_T_pixelAspectCode = -1;
static gint ett_h245_T_extendedPAR = -1;
static gint ett_h245_T_extendedPAR_item = -1;
static gint ett_h245_H263VideoModeCombos = -1;
static gint ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags = -1;
static gint ett_h245_H263ModeComboFlags = -1;
static gint ett_h245_H263Version3Options = -1;
static gint ett_h245_IS11172VideoCapability = -1;
static gint ett_h245_AudioCapability = -1;
static gint ett_h245_T_g7231 = -1;
static gint ett_h245_G729Extensions = -1;
static gint ett_h245_G7231AnnexCCapability = -1;
static gint ett_h245_G723AnnexCAudioMode = -1;
static gint ett_h245_IS11172AudioCapability = -1;
static gint ett_h245_IS13818AudioCapability = -1;
static gint ett_h245_GSMAudioCapability = -1;
static gint ett_h245_VBDCapability = -1;
static gint ett_h245_DataApplicationCapability = -1;
static gint ett_h245_Application = -1;
static gint ett_h245_T_t84 = -1;
static gint ett_h245_T_t38fax = -1;
static gint ett_h245_DataProtocolCapability = -1;
static gint ett_h245_T_v76wCompression = -1;
static gint ett_h245_CompressionType = -1;
static gint ett_h245_V42bis = -1;
static gint ett_h245_T84Profile = -1;
static gint ett_h245_T_t84Restricted = -1;
static gint ett_h245_T38FaxProfile = -1;
static gint ett_h245_T38FaxRateManagement = -1;
static gint ett_h245_T38FaxUdpOptions = -1;
static gint ett_h245_T_t38FaxUdpEC = -1;
static gint ett_h245_T38FaxTcpOptions = -1;
static gint ett_h245_Nlpid = -1;
static gint ett_h245_EncryptionAuthenticationAndIntegrity = -1;
static gint ett_h245_EncryptionCapability = -1;
static gint ett_h245_MediaEncryptionAlgorithm = -1;
static gint ett_h245_AuthenticationCapability = -1;
static gint ett_h245_IntegrityCapability = -1;
static gint ett_h245_UserInputCapability = -1;
static gint ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter = -1;
static gint ett_h245_ConferenceCapability = -1;
static gint ett_h245_SEQUENCE_OF_NonStandardParameter = -1;
static gint ett_h245_GenericCapability = -1;
static gint ett_h245_CapabilityIdentifier = -1;
static gint ett_h245_GenericParameter = -1;
static gint ett_h245_SEQUENCE_OF_ParameterIdentifier = -1;
static gint ett_h245_ParameterIdentifier = -1;
static gint ett_h245_ParameterValue = -1;
static gint ett_h245_MultiplexedStreamCapability = -1;
static gint ett_h245_MultiplexFormat = -1;
static gint ett_h245_AudioTelephonyEventCapability = -1;
static gint ett_h245_AudioToneCapability = -1;
static gint ett_h245_NoPTAudioTelephonyEventCapability = -1;
static gint ett_h245_NoPTAudioToneCapability = -1;
static gint ett_h245_MultiplePayloadStreamCapability = -1;
static gint ett_h245_FECCapability = -1;
static gint ett_h245_FECC_rfc2733 = -1;
static gint ett_h245_T_separateStream = -1;
static gint ett_h245_OpenLogicalChannel = -1;
static gint ett_h245_T_forwardLogicalChannelParameters = -1;
static gint ett_h245_OLC_forw_multiplexParameters = -1;
static gint ett_h245_OLC_reverseLogicalChannelParameters = -1;
static gint ett_h245_OLC_rev_multiplexParameters = -1;
static gint ett_h245_NetworkAccessParameters = -1;
static gint ett_h245_T_distribution = -1;
static gint ett_h245_T_networkAddress = -1;
static gint ett_h245_T_t120SetupProcedure = -1;
static gint ett_h245_Q2931Address = -1;
static gint ett_h245_T_address = -1;
static gint ett_h245_V75Parameters = -1;
static gint ett_h245_DataType = -1;
static gint ett_h245_H235Media = -1;
static gint ett_h245_T_mediaType = -1;
static gint ett_h245_MultiplexedStreamParameter = -1;
static gint ett_h245_H222LogicalChannelParameters = -1;
static gint ett_h245_H223LogicalChannelParameters = -1;
static gint ett_h245_T_adaptationLayerType = -1;
static gint ett_h245_Al3 = -1;
static gint ett_h245_H223AL1MParameters = -1;
static gint ett_h245_T_transferMode = -1;
static gint ett_h245_AL1HeaderFEC = -1;
static gint ett_h245_AL1CrcLength = -1;
static gint ett_h245_ArqType = -1;
static gint ett_h245_H223AL2MParameters = -1;
static gint ett_h245_AL2HeaderFEC = -1;
static gint ett_h245_H223AL3MParameters = -1;
static gint ett_h245_T_headerFormat = -1;
static gint ett_h245_AL3CrcLength = -1;
static gint ett_h245_H223AnnexCArqParameters = -1;
static gint ett_h245_T_numberOfRetransmissions = -1;
static gint ett_h245_V76LogicalChannelParameters = -1;
static gint ett_h245_T_suspendResume = -1;
static gint ett_h245_V76LCP_mode = -1;
static gint ett_h245_T_eRM = -1;
static gint ett_h245_T_recovery = -1;
static gint ett_h245_V76HDLCParameters = -1;
static gint ett_h245_CRCLength = -1;
static gint ett_h245_H2250LogicalChannelParameters = -1;
static gint ett_h245_T_mediaPacketization = -1;
static gint ett_h245_RTPPayloadType = -1;
static gint ett_h245_T_payloadDescriptor = -1;
static gint ett_h245_RedundancyEncoding = -1;
static gint ett_h245_T_rtpRedundancyEncoding = -1;
static gint ett_h245_SEQUENCE_OF_RedundancyEncodingElement = -1;
static gint ett_h245_RedundancyEncodingElement = -1;
static gint ett_h245_MultiplePayloadStream = -1;
static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement = -1;
static gint ett_h245_MultiplePayloadStreamElement = -1;
static gint ett_h245_FECData = -1;
static gint ett_h245_RFC2733Data = -1;
static gint ett_h245_FECdata_mode = -1;
static gint ett_h245_Moderfc2733 = -1;
static gint ett_h245_SeparateStream = -1;
static gint ett_h245_T_differentPort = -1;
static gint ett_h245_T_samePort = -1;
static gint ett_h245_TransportAddress = -1;
static gint ett_h245_UnicastAddress = -1;
static gint ett_h245_T_iPAddress = -1;
static gint ett_h245_T_iPXAddress = -1;
static gint ett_h245_T_iP6Address = -1;
static gint ett_h245_T_iPSourceRouteAddress = -1;
static gint ett_h245_T_routing = -1;
static gint ett_h245_T_route = -1;
static gint ett_h245_MulticastAddress = -1;
static gint ett_h245_MIPAddress = -1;
static gint ett_h245_MIP6Address = -1;
static gint ett_h245_EncryptionSync = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData = -1;
static gint ett_h245_EscrowData = -1;
static gint ett_h245_OpenLogicalChannelAck = -1;
static gint ett_h245_OLC_ack_reverseLogicalChannelParameters = -1;
static gint ett_h245_T_multiplexParameters = -1;
static gint ett_h245_T_forwardMultiplexAckParameters = -1;
static gint ett_h245_OpenLogicalChannelReject = -1;
static gint ett_h245_OpenLogicalChannelRejectCause = -1;
static gint ett_h245_OpenLogicalChannelConfirm = -1;
static gint ett_h245_H2250LogicalChannelAckParameters = -1;
static gint ett_h245_CloseLogicalChannel = -1;
static gint ett_h245_T_source = -1;
static gint ett_h245_clc_reason = -1;
static gint ett_h245_CloseLogicalChannelAck = -1;
static gint ett_h245_RequestChannelClose = -1;
static gint ett_h245_T_reason = -1;
static gint ett_h245_RequestChannelCloseAck = -1;
static gint ett_h245_RequestChannelCloseReject = -1;
static gint ett_h245_RequestChannelCloseRejectCause = -1;
static gint ett_h245_RequestChannelCloseRelease = -1;
static gint ett_h245_MultiplexEntrySend = -1;
static gint ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor = -1;
static gint ett_h245_MultiplexEntryDescriptor = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_MultiplexElement = -1;
static gint ett_h245_MultiplexElement = -1;
static gint ett_h245_Me_type = -1;
static gint ett_h245_SEQUENCE_SIZE_2_255_OF_MultiplexElement = -1;
static gint ett_h245_ME_repeatCount = -1;
static gint ett_h245_MultiplexEntrySendAck = -1;
static gint ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber = -1;
static gint ett_h245_MultiplexEntrySendReject = -1;
static gint ett_h245_SET_SIZE_1_15_OF_MultiplexEntryRejectionDescriptions = -1;
static gint ett_h245_MultiplexEntryRejectionDescriptions = -1;
static gint ett_h245_MultiplexEntryRejectionDescriptionsCause = -1;
static gint ett_h245_MultiplexEntrySendRelease = -1;
static gint ett_h245_RequestMultiplexEntry = -1;
static gint ett_h245_RequestMultiplexEntryAck = -1;
static gint ett_h245_RequestMultiplexEntryReject = -1;
static gint ett_h245_SET_SIZE_1_15_OF_RequestMultiplexEntryRejectionDescriptions = -1;
static gint ett_h245_RequestMultiplexEntryRejectionDescriptions = -1;
static gint ett_h245_RequestMultiplexEntryRejectionDescriptionsCause = -1;
static gint ett_h245_RequestMultiplexEntryRelease = -1;
static gint ett_h245_RequestMode = -1;
static gint ett_h245_SEQUENCE_SIZE_1_256_OF_ModeDescription = -1;
static gint ett_h245_RequestModeAck = -1;
static gint ett_h245_Req_mode_ack_response = -1;
static gint ett_h245_RequestModeReject = -1;
static gint ett_h245_RequestModeRejectCause = -1;
static gint ett_h245_RequestModeRelease = -1;
static gint ett_h245_ModeDescription = -1;
static gint ett_h245_ModeElementType = -1;
static gint ett_h245_ModeElement = -1;
static gint ett_h245_H235Mode = -1;
static gint ett_h245_T_mediaMode = -1;
static gint ett_h245_MultiplexedStreamModeParameters = -1;
static gint ett_h245_RedundancyEncodingDTMode = -1;
static gint ett_h245_SEQUENCE_OF_RedundancyEncodingDTModeElement = -1;
static gint ett_h245_RedundancyEncodingDTModeElement = -1;
static gint ett_h245_Re_type = -1;
static gint ett_h245_MultiplePayloadStreamMode = -1;
static gint ett_h245_SEQUENCE_OF_MultiplePayloadStreamElementMode = -1;
static gint ett_h245_MultiplePayloadStreamElementMode = -1;
static gint ett_h245_FECMode = -1;
static gint ett_h245_T_rfc2733Mode = -1;
static gint ett_h245_FEC_mode = -1;
static gint ett_h245_H223ModeParameters = -1;
static gint ett_h245_AdaptationLayerType = -1;
static gint ett_h245_V76ModeParameters = -1;
static gint ett_h245_H2250ModeParameters = -1;
static gint ett_h245_RedundancyEncodingMode = -1;
static gint ett_h245_T_secondaryEncoding = -1;
static gint ett_h245_VideoMode = -1;
static gint ett_h245_H261VideoMode = -1;
static gint ett_h245_H261Resolution = -1;
static gint ett_h245_H262VideoMode = -1;
static gint ett_h245_T_profileAndLevel = -1;
static gint ett_h245_H263VideoMode = -1;
static gint ett_h245_H263Resolution = -1;
static gint ett_h245_IS11172VideoMode = -1;
static gint ett_h245_AudioMode = -1;
static gint ett_h245_Mode_g7231 = -1;
static gint ett_h245_IS11172AudioMode = -1;
static gint ett_h245_T_audioLayer = -1;
static gint ett_h245_T_audioSampling = -1;
static gint ett_h245_IS11172_multichannelType = -1;
static gint ett_h245_IS13818AudioMode = -1;
static gint ett_h245_IS13818AudioLayer = -1;
static gint ett_h245_IS13818AudioSampling = -1;
static gint ett_h245_IS13818MultichannelType = -1;
static gint ett_h245_G7231AnnexCMode = -1;
static gint ett_h245_VBDMode = -1;
static gint ett_h245_DataMode = -1;
static gint ett_h245_DataModeApplication = -1;
static gint ett_h245_T38faxApp = -1;
static gint ett_h245_EncryptionMode = -1;
static gint ett_h245_RoundTripDelayRequest = -1;
static gint ett_h245_RoundTripDelayResponse = -1;
static gint ett_h245_MaintenanceLoopRequest = -1;
static gint ett_h245_Mlr_type = -1;
static gint ett_h245_MaintenanceLoopAck = -1;
static gint ett_h245_Mla_type = -1;
static gint ett_h245_MaintenanceLoopReject = -1;
static gint ett_h245_Mlrej_type = -1;
static gint ett_h245_MaintenanceLoopRejectCause = -1;
static gint ett_h245_MaintenanceLoopOffCommand = -1;
static gint ett_h245_CommunicationModeCommand = -1;
static gint ett_h245_SET_SIZE_1_256_OF_CommunicationModeTableEntry = -1;
static gint ett_h245_CommunicationModeRequest = -1;
static gint ett_h245_CommunicationModeResponse = -1;
static gint ett_h245_CommunicationModeTableEntry = -1;
static gint ett_h245_T_dataType = -1;
static gint ett_h245_ConferenceRequest = -1;
static gint ett_h245_T_requestTerminalCertificate = -1;
static gint ett_h245_CertSelectionCriteria = -1;
static gint ett_h245_Criteria = -1;
static gint ett_h245_TerminalLabel = -1;
static gint ett_h245_ConferenceResponse = -1;
static gint ett_h245_T_mCTerminalIDResponse = -1;
static gint ett_h245_T_terminalIDResponse = -1;
static gint ett_h245_T_conferenceIDResponse = -1;
static gint ett_h245_T_passwordResponse = -1;
static gint ett_h245_SET_SIZE_1_256_OF_TerminalLabel = -1;
static gint ett_h245_T_makeMeChairResponse = -1;
static gint ett_h245_T_extensionAddressResponse = -1;
static gint ett_h245_T_chairTokenOwnerResponse = -1;
static gint ett_h245_T_terminalCertificateResponse = -1;
static gint ett_h245_T_broadcastMyLogicalChannelResponse = -1;
static gint ett_h245_T_makeTerminalBroadcasterResponse = -1;
static gint ett_h245_T_sendThisSourceResponse = -1;
static gint ett_h245_RequestAllTerminalIDsResponse = -1;
static gint ett_h245_SEQUENCE_OF_TerminalInformation = -1;
static gint ett_h245_TerminalInformation = -1;
static gint ett_h245_RemoteMCRequest = -1;
static gint ett_h245_RemoteMCResponse = -1;
static gint ett_h245_T_reject = -1;
static gint ett_h245_MultilinkRequest = -1;
static gint ett_h245_CallInformationReq = -1;
static gint ett_h245_AddConnectionReq = -1;
static gint ett_h245_MaximumHeaderIntervalReq = -1;
static gint ett_h245_T_requestType = -1;
static gint ett_h245_MultilinkResponse = -1;
static gint ett_h245_CallInformationResp = -1;
static gint ett_h245_AddConnectionResp = -1;
static gint ett_h245_T_responseCode = -1;
static gint ett_h245_T_rejected = -1;
static gint ett_h245_MaximumHeaderIntervalResp = -1;
static gint ett_h245_RemoveConnection = -1;
static gint ett_h245_MultilinkIndication = -1;
static gint ett_h245_T_crcDesired = -1;
static gint ett_h245_T_excessiveError = -1;
static gint ett_h245_DialingInformation = -1;
static gint ett_h245_SET_SIZE_1_65535_OF_DialingInformationNumber = -1;
static gint ett_h245_DialingInformationNumber = -1;
static gint ett_h245_SET_SIZE_1_255_OF_DialingInformationNetworkType = -1;
static gint ett_h245_DialingInformationNetworkType = -1;
static gint ett_h245_ConnectionIdentifier = -1;
static gint ett_h245_LogicalChannelRateRequest = -1;
static gint ett_h245_LogicalChannelRateAcknowledge = -1;
static gint ett_h245_LogicalChannelRateReject = -1;
static gint ett_h245_LogicalChannelRateRejectReason = -1;
static gint ett_h245_LogicalChannelRateRelease = -1;
static gint ett_h245_SendTerminalCapabilitySet = -1;
static gint ett_h245_T_specificRequest = -1;
static gint ett_h245_SET_SIZE_1_65535_OF_CapabilityTableEntryNumber = -1;
static gint ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptorNumber = -1;
static gint ett_h245_EncryptionCommand = -1;
static gint ett_h245_T_encryptionAlgorithmID = -1;
static gint ett_h245_FlowControlCommand = -1;
static gint ett_h245_Scope = -1;
static gint ett_h245_Restriction = -1;
static gint ett_h245_EndSessionCommand = -1;
static gint ett_h245_T_gstnOptions = -1;
static gint ett_h245_T_isdnOptions = -1;
static gint ett_h245_ConferenceCommand = -1;
static gint ett_h245_SubstituteConferenceIDCommand = -1;
static gint ett_h245_EncryptionUpdateDirection = -1;
static gint ett_h245_MiscellaneousCommand = -1;
static gint ett_h245_Mc_type = -1;
static gint ett_h245_T_videoFastUpdateGOB = -1;
static gint ett_h245_T_videoFastUpdateMB = -1;
static gint ett_h245_T_progressiveRefinementStart = -1;
static gint ett_h245_T_videoBadMBs = -1;
static gint ett_h245_SEQUENCE_OF_PictureReference = -1;
static gint ett_h245_T_lostPartialPicture = -1;
static gint ett_h245_T_encryptionUpdateCommand = -1;
static gint ett_h245_T_encryptionUpdateAck = -1;
static gint ett_h245_RepeatCount = -1;
static gint ett_h245_KeyProtectionMethod = -1;
static gint ett_h245_EncryptionUpdateRequest = -1;
static gint ett_h245_PictureReference = -1;
static gint ett_h245_H223MultiplexReconfiguration = -1;
static gint ett_h245_T_h223ModeChange = -1;
static gint ett_h245_T_h223AnnexADoubleFlag = -1;
static gint ett_h245_NewATMVCCommand = -1;
static gint ett_h245_Cmd_aal = -1;
static gint ett_h245_Cmd_aal1 = -1;
static gint ett_h245_Cmd_clockRecovery = -1;
static gint ett_h245_Cmd_errorCorrection = -1;
static gint ett_h245_Cmd_aal5 = -1;
static gint ett_h245_Cmd_multiplex = -1;
static gint ett_h245_Cmd_reverseParameters = -1;
static gint ett_h245_CmdR_multiplex = -1;
static gint ett_h245_MobileMultilinkReconfigurationCommand = -1;
static gint ett_h245_T_status = -1;
static gint ett_h245_FunctionNotUnderstood = -1;
static gint ett_h245_FunctionNotSupported = -1;
static gint ett_h245_FunctionNotSupportedCause = -1;
static gint ett_h245_ConferenceIndication = -1;
static gint ett_h245_TerminalYouAreSeeingInSubPictureNumber = -1;
static gint ett_h245_VideoIndicateCompose = -1;
static gint ett_h245_MiscellaneousIndication = -1;
static gint ett_h245_Mi_type = -1;
static gint ett_h245_T_videoNotDecodedMBs = -1;
static gint ett_h245_JitterIndication = -1;
static gint ett_h245_H223SkewIndication = -1;
static gint ett_h245_H2250MaximumSkewIndication = -1;
static gint ett_h245_MCLocationIndication = -1;
static gint ett_h245_VendorIdentification = -1;
static gint ett_h245_NewATMVCIndication = -1;
static gint ett_h245_Ind_aal = -1;
static gint ett_h245_Ind_aal1 = -1;
static gint ett_h245_Ind_clockRecovery = -1;
static gint ett_h245_Ind_errorCorrection = -1;
static gint ett_h245_Ind_aal5 = -1;
static gint ett_h245_Ind_multiplex = -1;
static gint ett_h245_Ind_reverseParameters = -1;
static gint ett_h245_IndR_multiplex = -1;
static gint ett_h245_Params = -1;
static gint ett_h245_UserInputIndication = -1;
static gint ett_h245_T_userInputSupportIndication = -1;
static gint ett_h245_T_signal = -1;
static gint ett_h245_T_signalUpdate = -1;
static gint ett_h245_Si_rtp = -1;
static gint ett_h245_T_extendedAlphanumeric = -1;
static gint ett_h245_EncryptedAlphanumeric = -1;
static gint ett_h245_Rtp = -1;
static gint ett_h245_FlowControlIndication = -1;
static gint ett_h245_MobileMultilinkReconfigurationIndication = -1;

/*--- End of included file: packet-h245-ett.c ---*/



/*--- Included file: packet-h245-fn.c ---*/

/*--- Cyclic dependencies ---*/

/* GenericParameter -> ParameterValue -> ParameterValue/genericParameter -> GenericParameter */
static int dissect_h245_GenericParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_messageContent_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericParameter(tvb, offset, pinfo, tree, hf_h245_messageContent_item);
}
static int dissect_collapsing_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericParameter(tvb, offset, pinfo, tree, hf_h245_collapsing_item);
}
static int dissect_nonCollapsing_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericParameter(tvb, offset, pinfo, tree, hf_h245_nonCollapsing_item);
}
static int dissect_genericParameter_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericParameter(tvb, offset, pinfo, tree, hf_h245_genericParameter_item);
}

/* VideoCapability -> ExtendedVideoCapability -> ExtendedVideoCapability/videoCapability -> VideoCapability */
static int dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_receiveVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoCapability(tvb, offset, pinfo, tree, hf_h245_receiveVideoCapability);
}
static int dissect_transmitVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoCapability(tvb, offset, pinfo, tree, hf_h245_transmitVideoCapability);
}
static int dissect_receiveAndTransmitVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitVideoCapability);
}
static int dissect_videoCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoCapability(tvb, offset, pinfo, tree, hf_h245_videoCapability_item);
}
static int dissect_videoData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoCapability(tvb, offset, pinfo, tree, hf_h245_videoData);
}

/* AudioCapability -> VBDCapability -> AudioCapability */
static int dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_receiveAudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioCapability(tvb, offset, pinfo, tree, hf_h245_receiveAudioCapability);
}
static int dissect_transmitAudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioCapability(tvb, offset, pinfo, tree, hf_h245_transmitAudioCapability);
}
static int dissect_receiveAndTransmitAudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitAudioCapability);
}
static int dissect_vbd_cap_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioCapability(tvb, offset, pinfo, tree, hf_h245_vbd_cap_type);
}
static int dissect_audioData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioCapability(tvb, offset, pinfo, tree, hf_h245_audioData);
}

/* DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> DataType */
/* DataType -> H235Media -> H235Media/mediaType -> RedundancyEncoding -> RedundancyEncoding/rtpRedundancyEncoding -> RedundancyEncodingElement -> DataType */
/* DataType -> H235Media -> H235Media/mediaType -> MultiplePayloadStream -> MultiplePayloadStream/elements -> MultiplePayloadStreamElement -> DataType */
static int dissect_h245_DataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_dataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataType(tvb, offset, pinfo, tree, hf_h245_dataType);
}
static int dissect_secondaryEncoding3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataType(tvb, offset, pinfo, tree, hf_h245_secondaryEncoding3);
}

/* MultiplexElement -> MultiplexElement/type -> MultiplexElement/type/subElementList -> MultiplexElement */
static int dissect_h245_MultiplexElement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_elementList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexElement(tvb, offset, pinfo, tree, hf_h245_elementList_item);
}
static int dissect_subElementList_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexElement(tvb, offset, pinfo, tree, hf_h245_subElementList_item);
}

/* AudioMode -> VBDMode -> AudioMode */
static int dissect_h245_AudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_audioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioMode(tvb, offset, pinfo, tree, hf_h245_audioMode);
}
static int dissect_vbd_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioMode(tvb, offset, pinfo, tree, hf_h245_vbd_type);
}

/* ModeElementType -> MultiplePayloadStreamMode -> MultiplePayloadStreamMode/mpsmElements -> MultiplePayloadStreamElementMode -> ModeElementType */
static int dissect_h245_ModeElementType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, int hf_index);

static int dissect_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ModeElementType(tvb, offset, pinfo, tree, hf_h245_type);
}


/*--- Fields for imported types ---*/



static int
dissect_h245_OBJECT_IDENTIFIER(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_index,
                                         NULL);

  return offset;
}
static int dissect_object(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_object);
}
static int dissect_protocolIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_protocolIdentifier);
}
static int dissect_algorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_algorithm);
}
static int dissect_antiSpamAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_antiSpamAlgorithm);
}
static int dissect_oid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_oid);
}
static int dissect_escrowID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_escrowID);
}
static int dissect_field(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_field);
}
static int dissect_algorithmOID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OBJECT_IDENTIFIER(tvb, offset, pinfo, tree, hf_h245_algorithmOID);
}



static int
dissect_h245_T_t35CountryCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 255U, &t35CountryCode, NULL, FALSE);

  return offset;
}
static int dissect_t35CountryCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t35CountryCode(tvb, offset, pinfo, tree, hf_h245_t35CountryCode);
}



static int
dissect_h245_T_t35Extension(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 255U, &t35Extension, NULL, FALSE);

  return offset;
}
static int dissect_t35Extension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t35Extension(tvb, offset, pinfo, tree, hf_h245_t35Extension);
}



static int
dissect_h245_T_manufacturerCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 65535U, &manufacturerCode, NULL, FALSE);

  return offset;
}
static int dissect_manufacturerCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_manufacturerCode(tvb, offset, pinfo, tree, hf_h245_manufacturerCode);
}

static const per_sequence_t H221NonStandardID_sequence[] = {
  { "t35CountryCode"              , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t35CountryCode },
  { "t35Extension"                , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t35Extension },
  { "manufacturerCode"            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_manufacturerCode },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H221NonStandardID(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  t35CountryCode = 0;
  t35Extension = 0;
  manufacturerCode = 0;
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H221NonStandardID, H221NonStandardID_sequence);

  h221NonStandard = ((t35CountryCode * 256) + t35Extension) * 65536 + manufacturerCode;
  proto_tree_add_uint(tree, hf_h245Manufacturer, tvb, (offset>>3)-4, 4, h221NonStandard);

  return offset;
}
static int dissect_h221NonStandardID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H221NonStandardID(tvb, offset, pinfo, tree, hf_h245_h221NonStandardID);
}


static const value_string h245_NonStandardIdentifier_vals[] = {
  {   0, "object" },
  {   1, "h221NonStandard" },
  { 0, NULL }
};

static const per_choice_t NonStandardIdentifier_choice[] = {
  {   0, "object"                      , ASN1_NO_EXTENSIONS     , dissect_object },
  {   1, "h221NonStandard"             , ASN1_NO_EXTENSIONS     , dissect_h221NonStandardID },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_NonStandardIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_NonStandardIdentifier, NonStandardIdentifier_choice, "NonStandardIdentifier",
                              NULL);

  return offset;
}
static int dissect_nonStandardIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardIdentifier(tvb, offset, pinfo, tree, hf_h245_nonStandardIdentifier);
}
static int dissect_vendor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardIdentifier(tvb, offset, pinfo, tree, hf_h245_vendor);
}


static int
dissect_h245_OCTET_STRING(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    -1, -1,
                                    NULL, NULL);

  return offset;
}
static int dissect_nsd_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_nsd_data);
}
static int dissect_nlpidData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_nlpidData);
}
static int dissect_nonCollapsingRaw(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_nonCollapsingRaw);
}
static int dissect_octetString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_octetString);
}
static int dissect_programDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_programDescriptors);
}
static int dissect_streamDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_streamDescriptors);
}
static int dissect_encryptionSE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_encryptionSE);
}
static int dissect_returnedFunction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_returnedFunction);
}
static int dissect_iv(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_iv);
}
static int dissect_encrypted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING(tvb, offset, pinfo, tree, hf_h245_encrypted);
}

static const per_sequence_t NonStandardParameter_sequence[] = {
  { "nonStandardIdentifier"       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_nonStandardIdentifier },
  { "data"                        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_nsd_data },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_NonStandardParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_NonStandardParameter, NonStandardParameter_sequence);

  return offset;
}
static int dissect_nonStandardData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandardData);
}
static int dissect_nonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandard);
}
static int dissect_nonStandard_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandard_item);
}
static int dissect_nonStandardData_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandardData_item);
}
static int dissect_h221NonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_h221NonStandard);
}
static int dissect_h235Control(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_h235Control);
}
static int dissect_nonStandardAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandardAddress);
}
static int dissect_associatedAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_associatedAlgorithm);
}

static const per_sequence_t NonStandardMessage_sequence[] = {
  { "nonStandardData"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nonStandardData },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_NonStandardMessage(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_NonStandardMessage, NonStandardMessage_sequence);

  return offset;
}
static int dissect_nonStandardMsg(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NonStandardMessage(tvb, offset, pinfo, tree, hf_h245_nonStandardMsg);
}



static int
dissect_h245_INTEGER_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 255U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_terminalType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_terminalType);
}
static int dissect_h233IVResponseTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_h233IVResponseTime);
}
static int dissect_maxPendingReplacementFor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_maxPendingReplacementFor);
}
static int dissect_frameSequence_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_frameSequence_item);
}
static int dissect_version(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_version);
}
static int dissect_booleanArray(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_booleanArray);
}
static int dissect_sessionID_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_sessionID_0_255);
}
static int dissect_synchFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_synchFlag);
}
static int dissect_firstGOB_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_firstGOB_0_255);
}
static int dissect_longTermPictureIndex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_longTermPictureIndex);
}
static int dissect_subPictureNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_subPictureNumber);
}
static int dissect_compositionNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_compositionNumber);
}
static int dissect_temporalReference_0_255(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_255(tvb, offset, pinfo, tree, hf_h245_temporalReference_0_255);
}



static int
dissect_h245_INTEGER_0_16777215(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 16777215U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_statusDeterminationNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_h245_statusDeterminationNumber);
}
static int dissect_sendBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_h245_sendBufferSize);
}
static int dissect_Res_maximumBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16777215(tvb, offset, pinfo, tree, hf_h245_Res_maximumBitRate);
}

static const per_sequence_t MasterSlaveDetermination_sequence[] = {
  { "terminalType"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_terminalType },
  { "statusDeterminationNumber"   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_statusDeterminationNumber },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MasterSlaveDetermination(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MasterSlaveDetermination, MasterSlaveDetermination_sequence);


  h245_pi->msg_type = H245_MastSlvDet;
  return offset;
}
static int dissect_masterSlaveDetermination(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MasterSlaveDetermination(tvb, offset, pinfo, tree, hf_h245_masterSlaveDetermination);
}



static int
dissect_h245_SequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 255U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_sequenceNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SequenceNumber(tvb, offset, pinfo, tree, hf_h245_sequenceNumber);
}
static int dissect_h233AlgorithmIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SequenceNumber(tvb, offset, pinfo, tree, hf_h245_h233AlgorithmIdentifier);
}



static int
dissect_h245_INTEGER_1_256(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 256U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_numberOfVCs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_numberOfVCs);
}
static int dissect_framesBetweenSyncPoints(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_framesBetweenSyncPoints);
}
static int dissect_presentationOrder(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_presentationOrder);
}
static int dissect_sqcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_sqcifAdditionalPictureMemory);
}
static int dissect_qcifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_qcifAdditionalPictureMemory);
}
static int dissect_cifAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_cifAdditionalPictureMemory);
}
static int dissect_cif4AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_cif4AdditionalPictureMemory);
}
static int dissect_cif16AdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_cif16AdditionalPictureMemory);
}
static int dissect_bigCpfAdditionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_bigCpfAdditionalPictureMemory);
}
static int dissect_g711Alaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g711Alaw64k);
}
static int dissect_g711Alaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g711Alaw56k);
}
static int dissect_g711Ulaw64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g711Ulaw64k);
}
static int dissect_g711Ulaw56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g711Ulaw56k);
}
static int dissect_g722_64k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g722_64k);
}
static int dissect_g722_56k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g722_56k);
}
static int dissect_g722_48k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g722_48k);
}
static int dissect_maxAl_sduAudioFrames(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_maxAl_sduAudioFrames);
}
static int dissect_g728(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g728);
}
static int dissect_g729(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g729);
}
static int dissect_g729AnnexA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g729AnnexA);
}
static int dissect_g729wAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g729wAnnexB);
}
static int dissect_g729AnnexAwAnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_g729AnnexAwAnnexB);
}
static int dissect_audioUnit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_audioUnit);
}
static int dissect_audioUnitSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_audioUnitSize);
}
static int dissect_maximumStringLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_256(tvb, offset, pinfo, tree, hf_h245_maximumStringLength);
}


static int
dissect_h245_BOOLEAN(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_boolean(tvb, offset, pinfo, tree, hf_index,
                               NULL, NULL);

  return offset;
}
static int dissect_h233EncryptionTransmitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h233EncryptionTransmitCapability);
}
static int dissect_nullClockRecovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_nullClockRecovery);
}
static int dissect_srtsClockRecovery_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_srtsClockRecovery_bool);
}
static int dissect_adaptiveClockRecovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_adaptiveClockRecovery);
}
static int dissect_nullErrorCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_nullErrorCorrection);
}
static int dissect_longInterleaver(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_longInterleaver);
}
static int dissect_shortInterleaver(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_shortInterleaver);
}
static int dissect_errorCorrectionOnly(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_errorCorrectionOnly);
}
static int dissect_structuredDataTransfer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_structuredDataTransfer);
}
static int dissect_partiallyFilledCells(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_partiallyFilledCells);
}
static int dissect_transportStream_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_transportStream_bool);
}
static int dissect_programStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_programStream);
}
static int dissect_srtsClockRecoveryflag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_srtsClockRecoveryflag);
}
static int dissect_transportWithI_frames(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_transportWithI_frames);
}
static int dissect_videoWithAL1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL1);
}
static int dissect_videoWithAL2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL2);
}
static int dissect_videoWithAL3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL3);
}
static int dissect_audioWithAL1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL1);
}
static int dissect_audioWithAL2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL2);
}
static int dissect_audioWithAL3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL3);
}
static int dissect_dataWithAL1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL1);
}
static int dissect_dataWithAL2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL2);
}
static int dissect_dataWithAL3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL3);
}
static int dissect_maxMUXPDUSizeCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_maxMUXPDUSizeCapability);
}
static int dissect_nsrpSupport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_nsrpSupport);
}
static int dissect_modeChangeCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_modeChangeCapability);
}
static int dissect_h223AnnexA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h223AnnexA);
}
static int dissect_h223AnnexADoubleFlagFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h223AnnexADoubleFlagFlag);
}
static int dissect_h223AnnexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h223AnnexB);
}
static int dissect_h223AnnexBwithHeader(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h223AnnexBwithHeader);
}
static int dissect_videoWithAL1M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL1M);
}
static int dissect_videoWithAL2M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL2M);
}
static int dissect_videoWithAL3M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoWithAL3M);
}
static int dissect_audioWithAL1M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL1M);
}
static int dissect_audioWithAL2M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL2M);
}
static int dissect_audioWithAL3M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioWithAL3M);
}
static int dissect_dataWithAL1M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL1M);
}
static int dissect_dataWithAL2M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL2M);
}
static int dissect_dataWithAL3M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataWithAL3M);
}
static int dissect_alpduInterleaving(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_alpduInterleaving);
}
static int dissect_rsCodeCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_rsCodeCapability);
}
static int dissect_suspendResumeCapabilitywAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_suspendResumeCapabilitywAddress);
}
static int dissect_suspendResumeCapabilitywoAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_suspendResumeCapabilitywoAddress);
}
static int dissect_rejCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_rejCapability);
}
static int dissect_sREJCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_sREJCapability);
}
static int dissect_mREJCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_mREJCapability);
}
static int dissect_crc8bitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_crc8bitCapability);
}
static int dissect_crc16bitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_crc16bitCapability);
}
static int dissect_crc32bitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_crc32bitCapability);
}
static int dissect_uihCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_uihCapability);
}
static int dissect_twoOctetAddressFieldCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_twoOctetAddressFieldCapability);
}
static int dissect_loopBackTestCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_loopBackTestCapability);
}
static int dissect_audioHeader(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioHeader);
}
static int dissect_centralizedConferenceMC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_centralizedConferenceMC);
}
static int dissect_decentralizedConferenceMC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_decentralizedConferenceMC);
}
static int dissect_rtcpVideoControlCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_rtcpVideoControlCapability);
}
static int dissect_logicalChannelSwitchingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_logicalChannelSwitchingCapability);
}
static int dissect_t120DynamicPortCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_t120DynamicPortCapability);
}
static int dissect_h261aVideoPacketization(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_h261aVideoPacketization);
}
static int dissect_atmUBR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_atmUBR);
}
static int dissect_atmrtVBR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_atmrtVBR);
}
static int dissect_atmnrtVBR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_atmnrtVBR);
}
static int dissect_atmABR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_atmABR);
}
static int dissect_atmCBR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_atmCBR);
}
static int dissect_variable_delta(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_variable_delta);
}
static int dissect_multicastCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_multicastCapability);
}
static int dissect_multiUniCastConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_multiUniCastConference);
}
static int dissect_centralizedControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_centralizedControl);
}
static int dissect_distributedControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_distributedControl);
}
static int dissect_centralizedAudio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_centralizedAudio);
}
static int dissect_distributedAudio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_distributedAudio);
}
static int dissect_centralizedVideo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_centralizedVideo);
}
static int dissect_distributedVideo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_distributedVideo);
}
static int dissect_temporalSpatialTradeOffCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_temporalSpatialTradeOffCapability);
}
static int dissect_stillImageTransmission(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_stillImageTransmission);
}
static int dissect_videoBadMBsCap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoBadMBsCap);
}
static int dissect_profileAndLevel_SPatML(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SPatML);
}
static int dissect_profileAndLevel_MPatLL(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatLL);
}
static int dissect_profileAndLevel_MPatML(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatML);
}
static int dissect_profileAndLevel_MPatH_14(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatH_14);
}
static int dissect_profileAndLevel_MPatHL(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatHL);
}
static int dissect_profileAndLevel_SNRatLL(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SNRatLL);
}
static int dissect_profileAndLevel_SNRatML(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SNRatML);
}
static int dissect_profileAndLevel_SpatialatH_14(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SpatialatH_14);
}
static int dissect_profileAndLevel_HPatML(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatML);
}
static int dissect_profileAndLevel_HPatH_14(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatH_14);
}
static int dissect_profileAndLevel_HPatHL(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatHL);
}
static int dissect_unrestrictedVector(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_unrestrictedVector);
}
static int dissect_arithmeticCoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_arithmeticCoding);
}
static int dissect_advancedPrediction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_advancedPrediction);
}
static int dissect_pbFrames(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_pbFrames);
}
static int dissect_errorCompensation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_errorCompensation);
}
static int dissect_baseBitRateConstrained(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_baseBitRateConstrained);
}
static int dissect_advancedIntraCodingMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_advancedIntraCodingMode);
}
static int dissect_deblockingFilterMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_deblockingFilterMode);
}
static int dissect_improvedPBFramesMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_improvedPBFramesMode);
}
static int dissect_unlimitedMotionVectors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_unlimitedMotionVectors);
}
static int dissect_fullPictureFreeze(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fullPictureFreeze);
}
static int dissect_partialPictureFreezeAndRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_partialPictureFreezeAndRelease);
}
static int dissect_resizingPartPicFreezeAndRelease(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_resizingPartPicFreezeAndRelease);
}
static int dissect_fullPictureSnapshot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fullPictureSnapshot);
}
static int dissect_partialPictureSnapshot(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_partialPictureSnapshot);
}
static int dissect_videoSegmentTagging(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoSegmentTagging);
}
static int dissect_progressiveRefinement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_progressiveRefinement);
}
static int dissect_dynamicPictureResizingByFour(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dynamicPictureResizingByFour);
}
static int dissect_dynamicPictureResizingSixteenthPel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dynamicPictureResizingSixteenthPel);
}
static int dissect_dynamicWarpingHalfPel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dynamicWarpingHalfPel);
}
static int dissect_dynamicWarpingSixteenthPel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dynamicWarpingSixteenthPel);
}
static int dissect_independentSegmentDecoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_independentSegmentDecoding);
}
static int dissect_slicesInOrder_NonRect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_slicesInOrder_NonRect);
}
static int dissect_slicesInOrder_Rect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_slicesInOrder_Rect);
}
static int dissect_slicesNoOrder_NonRect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_slicesNoOrder_NonRect);
}
static int dissect_slicesNoOrder_Rect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_slicesNoOrder_Rect);
}
static int dissect_alternateInterVLCMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_alternateInterVLCMode);
}
static int dissect_modifiedQuantizationMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_modifiedQuantizationMode);
}
static int dissect_reducedResolutionUpdate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_reducedResolutionUpdate);
}
static int dissect_separateVideoBackChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_separateVideoBackChannel);
}
static int dissect_videoMux(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoMux);
}
static int dissect_anyPixelAspectRatio(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_anyPixelAspectRatio);
}
static int dissect_referencePicSelect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_referencePicSelect);
}
static int dissect_enhancedReferencePicSelectBool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_enhancedReferencePicSelectBool);
}
static int dissect_dataPartitionedSlices(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_dataPartitionedSlices);
}
static int dissect_fixedPointIDCT0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fixedPointIDCT0);
}
static int dissect_interlacedFields(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_interlacedFields);
}
static int dissect_currentPictureHeaderRepetition(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_currentPictureHeaderRepetition);
}
static int dissect_previousPictureHeaderRepetition(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_previousPictureHeaderRepetition);
}
static int dissect_nextPictureHeaderRepetition(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_nextPictureHeaderRepetition);
}
static int dissect_pictureNumberBoolean(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_pictureNumberBoolean);
}
static int dissect_spareReferencePictures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_spareReferencePictures);
}
static int dissect_constrainedBitstream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_constrainedBitstream);
}
static int dissect_silenceSuppression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_silenceSuppression);
}
static int dissect_annexA(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexA);
}
static int dissect_annexB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexB);
}
static int dissect_annexD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexD);
}
static int dissect_annexE(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexE);
}
static int dissect_annexF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexF);
}
static int dissect_annexG(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexG);
}
static int dissect_annexH(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_annexH);
}
static int dissect_audioLayer1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioLayer1);
}
static int dissect_audioLayer2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioLayer2);
}
static int dissect_audioLayer3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioLayer3);
}
static int dissect_audioSampling32k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling32k);
}
static int dissect_audioSampling44k1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling44k1);
}
static int dissect_audioSampling48k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling48k);
}
static int dissect_singleChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_singleChannel);
}
static int dissect_twoChannels(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_twoChannels);
}
static int dissect_audioSampling16k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling16k);
}
static int dissect_audioSampling22k05(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling22k05);
}
static int dissect_audioSampling24k(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioSampling24k);
}
static int dissect_threeChannels2_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_threeChannels2_1);
}
static int dissect_threeChannels3_0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_threeChannels3_0);
}
static int dissect_fourChannels2_0_2_0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fourChannels2_0_2_0);
}
static int dissect_fourChannels2_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fourChannels2_2);
}
static int dissect_fourChannels3_1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fourChannels3_1);
}
static int dissect_fiveChannels3_0_2_0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fiveChannels3_0_2_0);
}
static int dissect_fiveChannels3_2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fiveChannels3_2);
}
static int dissect_lowFrequencyEnhancement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_lowFrequencyEnhancement);
}
static int dissect_multilingual(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_multilingual);
}
static int dissect_comfortNoise(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_comfortNoise);
}
static int dissect_scrambled(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_scrambled);
}
static int dissect_qcif_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_qcif_bool);
}
static int dissect_cif_bool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_cif_bool);
}
static int dissect_ccir601Seq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_ccir601Seq);
}
static int dissect_ccir601Prog(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_ccir601Prog);
}
static int dissect_hdtvSeq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_hdtvSeq);
}
static int dissect_hdtvProg(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_hdtvProg);
}
static int dissect_g3FacsMH200x100(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_g3FacsMH200x100);
}
static int dissect_g3FacsMH200x200(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_g3FacsMH200x200);
}
static int dissect_g4FacsMMR200x100(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_g4FacsMMR200x100);
}
static int dissect_g4FacsMMR200x200(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_g4FacsMMR200x200);
}
static int dissect_jbig200x200Seq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_jbig200x200Seq);
}
static int dissect_jbig200x200Prog(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_jbig200x200Prog);
}
static int dissect_jbig300x300Seq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_jbig300x300Seq);
}
static int dissect_jbig300x300Prog(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_jbig300x300Prog);
}
static int dissect_digPhotoLow(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_digPhotoLow);
}
static int dissect_digPhotoMedSeq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_digPhotoMedSeq);
}
static int dissect_digPhotoMedProg(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_digPhotoMedProg);
}
static int dissect_digPhotoHighSeq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_digPhotoHighSeq);
}
static int dissect_digPhotoHighProg(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_digPhotoHighProg);
}
static int dissect_fillBitRemoval(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_fillBitRemoval);
}
static int dissect_transcodingJBIG(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_transcodingJBIG);
}
static int dissect_transcodingMMR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_transcodingMMR);
}
static int dissect_t38TCPBidirectionalMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_t38TCPBidirectionalMode);
}
static int dissect_chairControlCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_chairControlCapability);
}
static int dissect_videoIndicateMixingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_videoIndicateMixingCapability);
}
static int dissect_multipointVisualizationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_multipointVisualizationCapability);
}
static int dissect_controlOnMuxStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_controlOnMuxStream);
}
static int dissect_redundancyEncodingBool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_redundancyEncodingBool);
}
static int dissect_separatePort(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_separatePort);
}
static int dissect_samePortBool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_samePortBool);
}
static int dissect_associateConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_associateConference);
}
static int dissect_audioHeaderPresent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_audioHeaderPresent);
}
static int dissect_segmentableFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_segmentableFlag);
}
static int dissect_alsduSplitting(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_alsduSplitting);
}
static int dissect_uIH(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_uIH);
}
static int dissect_loopbackTestProcedure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_loopbackTestProcedure);
}
static int dissect_mediaGuaranteedDelivery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_mediaGuaranteedDelivery);
}
static int dissect_mediaControlGuaranteedDelivery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_mediaControlGuaranteedDelivery);
}
static int dissect_flowControlToZero(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_flowControlToZero);
}
static int dissect_multiplexCapabilityBool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_multiplexCapabilityBool);
}
static int dissect_secureChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_secureChannel);
}
static int dissect_sharedSecret(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_sharedSecret);
}
static int dissect_certProtectedKey(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_certProtectedKey);
}
static int dissect_bitRateLockedToPCRClock(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_bitRateLockedToPCRClock);
}
static int dissect_bitRateLockedToNetworkClock(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BOOLEAN(tvb, offset, pinfo, tree, hf_h245_bitRateLockedToNetworkClock);
}

static const per_sequence_t T_aal1_sequence[] = {
  { "nullClockRecovery"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nullClockRecovery },
  { "srtsClockRecovery"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_srtsClockRecovery_bool },
  { "adaptiveClockRecovery"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_adaptiveClockRecovery },
  { "nullErrorCorrection"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nullErrorCorrection },
  { "longInterleaver"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_longInterleaver },
  { "shortInterleaver"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_shortInterleaver },
  { "errorCorrectionOnly"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_errorCorrectionOnly },
  { "structuredDataTransfer"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_structuredDataTransfer },
  { "partiallyFilledCells"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_partiallyFilledCells },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_aal1(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_aal1, T_aal1_sequence);

  return offset;
}
static int dissect_aal1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_aal1(tvb, offset, pinfo, tree, hf_h245_aal1);
}



static int
dissect_h245_INTEGER_0_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 65535U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_forwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_forwardMaximumSDUSize);
}
static int dissect_backwardMaximumSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_backwardMaximumSDUSize);
}
static int dissect_maximumAl2SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maximumAl2SDUSize);
}
static int dissect_maximumAl3SDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maximumAl3SDUSize);
}
static int dissect_maximumAL1MPDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maximumAL1MPDUSize);
}
static int dissect_maximumAL2MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maximumAL2MSDUSize);
}
static int dissect_maximumAL3MSDUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maximumAL3MSDUSize);
}
static int dissect_maxNTUSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_maxNTUSize);
}
static int dissect_bppMaxKb(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_bppMaxKb);
}
static int dissect_unsignedMin(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_unsignedMin);
}
static int dissect_unsignedMax(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_unsignedMax);
}
static int dissect_portNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_portNumber);
}
static int dissect_resourceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_resourceID);
}
static int dissect_ipv6_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_ipv6_tsapIdentifier);
}
static int dissect_iPSrcRoute_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_iPSrcRoute_tsapIdentifier);
}
static int dissect_multicast_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_multicast_tsapIdentifier);
}
static int dissect_multicast_IPv6_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_multicast_IPv6_tsapIdentifier);
}
static int dissect_logicalChannelNum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_logicalChannelNum);
}
static int dissect_requestedInterval(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_requestedInterval);
}
static int dissect_currentInterval(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_65535(tvb, offset, pinfo, tree, hf_h245_currentInterval);
}

static const per_sequence_t T_aal5_sequence[] = {
  { "forwardMaximumSDUSize"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_forwardMaximumSDUSize },
  { "backwardMaximumSDUSize"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_backwardMaximumSDUSize },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_aal5(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_aal5, T_aal5_sequence);

  return offset;
}
static int dissect_aal5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_aal5(tvb, offset, pinfo, tree, hf_h245_aal5);
}



static int
dissect_h245_INTEGER_1_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 65535U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_singleBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_singleBitRate);
}
static int dissect_lowerBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_lowerBitRate);
}
static int dissect_higherBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_higherBitRate);
}
static int dissect_finite_1_65535(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_finite_1_65535);
}
static int dissect_maxNumberOfAdditionalConnections(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_maxNumberOfAdditionalConnections);
}
static int dissect_infoNotAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_infoNotAvailable);
}
static int dissect_maxH223MUXPDUsize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_maxH223MUXPDUsize);
}
static int dissect_bitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_bitRate);
}
static int dissect_duration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65535(tvb, offset, pinfo, tree, hf_h245_duration);
}

static const per_sequence_t T_rangeOfBitRates_sequence[] = {
  { "lowerBitRate"                , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_lowerBitRate },
  { "higherBitRate"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_higherBitRate },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_rangeOfBitRates(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_rangeOfBitRates, T_rangeOfBitRates_sequence);

  return offset;
}
static int dissect_rangeOfBitRates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_rangeOfBitRates(tvb, offset, pinfo, tree, hf_h245_rangeOfBitRates);
}


static const value_string h245_Avb_type_vals[] = {
  {   0, "singleBitRate" },
  {   1, "rangeOfBitRates" },
  { 0, NULL }
};

static const per_choice_t Avb_type_choice[] = {
  {   0, "singleBitRate"               , ASN1_NO_EXTENSIONS     , dissect_singleBitRate },
  {   1, "rangeOfBitRates"             , ASN1_NO_EXTENSIONS     , dissect_rangeOfBitRates },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_Avb_type(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_Avb_type, Avb_type_choice, "Avb_type",
                              NULL);

  return offset;
}
static int dissect_Avb_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Avb_type(tvb, offset, pinfo, tree, hf_h245_Avb_type);
}

static const per_sequence_t T_availableBitRates_sequence[] = {
  { "type"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_Avb_type },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_availableBitRates(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_availableBitRates, T_availableBitRates_sequence);

  return offset;
}
static int dissect_availableBitRates(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_availableBitRates(tvb, offset, pinfo, tree, hf_h245_availableBitRates);
}


static int
dissect_h245_NumericString_SIZE_1_16(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_NumericString(tvb, offset, pinfo, tree, hf_index,
                                     1, 16);

  return offset;
}
static int dissect_internationalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NumericString_SIZE_1_16(tvb, offset, pinfo, tree, hf_h245_internationalNumber);
}


static int
dissect_h245_OCTET_STRING_SIZE_1_20(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    1, 20,
                                    NULL, NULL);

  return offset;
}
static int dissect_nsapAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_20(tvb, offset, pinfo, tree, hf_h245_nsapAddress);
}
static int dissect_subaddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_20(tvb, offset, pinfo, tree, hf_h245_subaddress);
}
static int dissect_nsap(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_20(tvb, offset, pinfo, tree, hf_h245_nsap);
}


static const value_string h245_T_address_vals[] = {
  {   0, "internationalNumber" },
  {   1, "nsapAddress" },
  { 0, NULL }
};

static const per_choice_t T_address_choice[] = {
  {   0, "internationalNumber"         , ASN1_EXTENSION_ROOT    , dissect_internationalNumber },
  {   1, "nsapAddress"                 , ASN1_EXTENSION_ROOT    , dissect_nsapAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_address, T_address_choice, "T_address",
                              NULL);

  return offset;
}
static int dissect_address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_address(tvb, offset, pinfo, tree, hf_h245_address);
}

static const per_sequence_t Q2931Address_sequence[] = {
  { "address"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_address },
  { "subaddress"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_subaddress },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_Q2931Address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_Q2931Address, Q2931Address_sequence);

  return offset;
}
static int dissect_gatewayAddress_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Q2931Address(tvb, offset, pinfo, tree, hf_h245_gatewayAddress_item);
}
static int dissect_q2931Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Q2931Address(tvb, offset, pinfo, tree, hf_h245_q2931Address);
}


static int
dissect_h245_SET_SIZE_1_256_OF_Q2931Address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_256_OF_Q2931Address, dissect_gatewayAddress_item,
                                          1, 256);

  return offset;
}
static int dissect_gatewayAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_Q2931Address(tvb, offset, pinfo, tree, hf_h245_gatewayAddress);
}

static const per_sequence_t T_aal1ViaGateway_sequence[] = {
  { "gatewayAddress"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_gatewayAddress },
  { "nullClockRecovery"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nullClockRecovery },
  { "srtsClockRecovery"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_srtsClockRecoveryflag },
  { "adaptiveClockRecovery"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_adaptiveClockRecovery },
  { "nullErrorCorrection"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nullErrorCorrection },
  { "longInterleaver"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_longInterleaver },
  { "shortInterleaver"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_shortInterleaver },
  { "errorCorrectionOnly"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_errorCorrectionOnly },
  { "structuredDataTransfer"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_structuredDataTransfer },
  { "partiallyFilledCells"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_partiallyFilledCells },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_aal1ViaGateway(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_aal1ViaGateway, T_aal1ViaGateway_sequence);

  return offset;
}
static int dissect_aal1ViaGateway(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_aal1ViaGateway(tvb, offset, pinfo, tree, hf_h245_aal1ViaGateway);
}

static const per_sequence_t VCCapability_sequence[] = {
  { "aal1"                        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_aal1 },
  { "aal5"                        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_aal5 },
  { "transportStream"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transportStream_bool },
  { "programStream"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_programStream },
  { "availableBitRates"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_availableBitRates },
  { "aal1ViaGateway"              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_aal1ViaGateway },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_VCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_VCCapability, VCCapability_sequence);

  return offset;
}
static int dissect_vcCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VCCapability(tvb, offset, pinfo, tree, hf_h245_vcCapability_item);
}


static int
dissect_h245_SET_OF_VCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_set_of(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_SET_OF_VCCapability, dissect_vcCapability_item);

  return offset;
}
static int dissect_vcCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_OF_VCCapability(tvb, offset, pinfo, tree, hf_h245_vcCapability);
}

static const per_sequence_t H222Capability_sequence[] = {
  { "numberOfVCs"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numberOfVCs },
  { "vcCapability"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_vcCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H222Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H222Capability, H222Capability_sequence);

  return offset;
}
static int dissect_h222Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H222Capability(tvb, offset, pinfo, tree, hf_h245_h222Capability);
}



static int
dissect_h245_INTEGER_0_1023(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 1023U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maximumDelayJitter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_1023(tvb, offset, pinfo, tree, hf_h245_maximumDelayJitter);
}
static int dissect_maximumAudioDelayJitter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_1023(tvb, offset, pinfo, tree, hf_h245_maximumAudioDelayJitter);
}
static int dissect_temporalReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_1023(tvb, offset, pinfo, tree, hf_h245_temporalReference);
}
static int dissect_pictureNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_1023(tvb, offset, pinfo, tree, hf_h245_pictureNumber);
}


static int
dissect_h245_NULL(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  { proto_item *ti_tmp;
  ti_tmp = proto_tree_add_item(tree, hf_index, tvb, offset>>8, 0, FALSE);
  proto_item_append_text(ti_tmp, ": NULL");
  }

  return offset;
}
static int dissect_master(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_master);
}
static int dissect_slave(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_slave);
}
static int dissect_identicalNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_identicalNumbers);
}
static int dissect_unspecified(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unspecified);
}
static int dissect_undefinedTableEntryUsed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_undefinedTableEntryUsed);
}
static int dissect_descriptorCapacityExceeded(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_descriptorCapacityExceeded);
}
static int dissect_noneProcessed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noneProcessed);
}
static int dissect_basic(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_basic);
}
static int dissect_guaranteedQOS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_guaranteedQOS);
}
static int dissect_controlledLoad(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_controlledLoad);
}
static int dissect_ip_UDP(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_ip_UDP);
}
static int dissect_ip_TCP(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_ip_TCP);
}
static int dissect_atm_AAL5_UNIDIR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_atm_AAL5_UNIDIR);
}
static int dissect_atm_AAL5_BIDIR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_atm_AAL5_BIDIR);
}
static int dissect_rtpAudioRedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_rtpAudioRedundancyEncoding);
}
static int dissect_roundrobin(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_roundrobin);
}
static int dissect_none(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_none);
}
static int dissect_ackMessageOnly(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_ackMessageOnly);
}
static int dissect_nackMessageOnly(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_nackMessageOnly);
}
static int dissect_ackOrNackMessageOnly(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_ackOrNackMessageOnly);
}
static int dissect_ackAndNackMessage(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_ackAndNackMessage);
}
static int dissect_dsvdControl(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dsvdControl);
}
static int dissect_v14buffered(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v14buffered);
}
static int dissect_v42lapm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v42lapm);
}
static int dissect_hdlcFrameTunnelling(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_hdlcFrameTunnelling);
}
static int dissect_h310SeparateVCStack(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_h310SeparateVCStack);
}
static int dissect_h310SingleVCStack(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_h310SingleVCStack);
}
static int dissect_transparent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_transparent);
}
static int dissect_segmentationAndReassembly(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_segmentationAndReassembly);
}
static int dissect_hdlcFrameTunnelingwSAR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_hdlcFrameTunnelingwSAR);
}
static int dissect_v120(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v120);
}
static int dissect_separateLANStack(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_separateLANStack);
}
static int dissect_tcp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_tcp);
}
static int dissect_udp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_udp);
}
static int dissect_t84Unrestricted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_t84Unrestricted);
}
static int dissect_localTCF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_localTCF);
}
static int dissect_transferredTCF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_transferredTCF);
}
static int dissect_t38UDPFEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_t38UDPFEC);
}
static int dissect_t38UDPRedundancy(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_t38UDPRedundancy);
}
static int dissect_basicString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_basicString);
}
static int dissect_iA5String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_iA5String);
}
static int dissect_generalString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_generalString);
}
static int dissect_dtmf(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dtmf);
}
static int dissect_hookflash(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_hookflash);
}
static int dissect_extendedAlphanumericFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_extendedAlphanumericFlag);
}
static int dissect_encryptedBasicString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_encryptedBasicString);
}
static int dissect_encryptedIA5String(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_encryptedIA5String);
}
static int dissect_encryptedGeneralString(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_encryptedGeneralString);
}
static int dissect_secureDTMF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_secureDTMF);
}
static int dissect_logical(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_logical);
}
static int dissect_unicast(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unicast);
}
static int dissect_multicast(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multicast);
}
static int dissect_originateCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_originateCall);
}
static int dissect_waitForCall(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_waitForCall);
}
static int dissect_issueQuery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_issueQuery);
}
static int dissect_nullData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_nullData);
}
static int dissect_al1Framed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_al1Framed);
}
static int dissect_al1NotFramed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_al1NotFramed);
}
static int dissect_al2WithoutSequenceNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_al2WithoutSequenceNumbers);
}
static int dissect_al2WithSequenceNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_al2WithSequenceNumbers);
}
static int dissect_framed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_framed);
}
static int dissect_unframed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unframed);
}
static int dissect_sebch16_7(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_sebch16_7);
}
static int dissect_golay24_12(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_golay24_12);
}
static int dissect_crc4bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc4bit);
}
static int dissect_crc12bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc12bit);
}
static int dissect_crc20bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc20bit);
}
static int dissect_crc28bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc28bit);
}
static int dissect_crc8bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc8bit);
}
static int dissect_crc16bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc16bit);
}
static int dissect_crc32bit(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crc32bit);
}
static int dissect_crcNotUsed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_crcNotUsed);
}
static int dissect_noArq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noArq);
}
static int dissect_sebch16_5(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_sebch16_5);
}
static int dissect_infinite(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_infinite);
}
static int dissect_noSuspendResume(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noSuspendResume);
}
static int dissect_suspendResumewAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_suspendResumewAddress);
}
static int dissect_suspendResumewoAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_suspendResumewoAddress);
}
static int dissect_rej(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_rej);
}
static int dissect_sREJ(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_sREJ);
}
static int dissect_mSREJ(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_mSREJ);
}
static int dissect_uNERM(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_uNERM);
}
static int dissect_h261aVideoPacketizationFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_h261aVideoPacketizationFlag);
}
static int dissect_redundancyEncodingFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_redundancyEncodingFlag);
}
static int dissect_strict(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_strict);
}
static int dissect_loose(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_loose);
}
static int dissect_unsuitableReverseParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unsuitableReverseParameters);
}
static int dissect_dataTypeNotSupported(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dataTypeNotSupported);
}
static int dissect_dataTypeNotAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dataTypeNotAvailable);
}
static int dissect_unknownDataType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unknownDataType);
}
static int dissect_dataTypeALCombinationNotSupported(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dataTypeALCombinationNotSupported);
}
static int dissect_multicastChannelNotAllowed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multicastChannelNotAllowed);
}
static int dissect_insufficientBandwidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_insufficientBandwidth);
}
static int dissect_separateStackEstablishmentFailed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_separateStackEstablishmentFailed);
}
static int dissect_invalidSessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_invalidSessionID);
}
static int dissect_masterSlaveConflict(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_masterSlaveConflict);
}
static int dissect_waitForCommunicationMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_waitForCommunicationMode);
}
static int dissect_invalidDependentChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_invalidDependentChannel);
}
static int dissect_replacementForRejected(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_replacementForRejected);
}
static int dissect_user(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_user);
}
static int dissect_lcse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_lcse);
}
static int dissect_unknown(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unknown);
}
static int dissect_reopen(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_reopen);
}
static int dissect_reservationFailure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_reservationFailure);
}
static int dissect_normal(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_normal);
}
static int dissect_untilClosingFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_untilClosingFlag);
}
static int dissect_unspecifiedCause(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unspecifiedCause);
}
static int dissect_descriptorTooComplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_descriptorTooComplex);
}
static int dissect_willTransmitMostPreferredMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_willTransmitMostPreferredMode);
}
static int dissect_willTransmitLessPreferredMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_willTransmitLessPreferredMode);
}
static int dissect_modeUnavailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_modeUnavailable);
}
static int dissect_multipointConstraint(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multipointConstraint);
}
static int dissect_requestDenied(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_requestDenied);
}
static int dissect_qcif(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_qcif);
}
static int dissect_cif(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cif);
}
static int dissect_profileAndLevel_SPatMLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SPatMLMode);
}
static int dissect_profileAndLevel_MPatLLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatLLMode);
}
static int dissect_profileAndLevel_MPatMLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatMLMode);
}
static int dissect_profileAndLevel_MPatH_14Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatH_14Mode);
}
static int dissect_profileAndLevel_MPatHLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_MPatHLMode);
}
static int dissect_profileAndLevel_SNRatLLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SNRatLLMode);
}
static int dissect_profileAndLevel_SNRatMLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SNRatMLMode);
}
static int dissect_profileAndLevel_SpatialatH_14Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_SpatialatH_14Mode);
}
static int dissect_profileAndLevel_HPatMLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatMLMode);
}
static int dissect_profileAndLevel_HPatH_14Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatH_14Mode);
}
static int dissect_profileAndLevel_HPatHLMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_profileAndLevel_HPatHLMode);
}
static int dissect_sqcif(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_sqcif);
}
static int dissect_cif4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cif4);
}
static int dissect_cif16(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cif16);
}
static int dissect_custom_res(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_custom_res);
}
static int dissect_g711Alaw64k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g711Alaw64k_mode);
}
static int dissect_g711Alaw56k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g711Alaw56k_mode);
}
static int dissect_g711Ulaw64k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g711Ulaw64k_mode);
}
static int dissect_g711Ulaw56k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g711Ulaw56k_mode);
}
static int dissect_g722_64k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g722_64k_mode);
}
static int dissect_g722_56k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g722_56k_mode);
}
static int dissect_g722_48k_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g722_48k_mode);
}
static int dissect_g728_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g728_mode);
}
static int dissect_g729_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g729_mode);
}
static int dissect_g729AnnexA_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_g729AnnexA_mode);
}
static int dissect_noSilenceSuppressionLowRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noSilenceSuppressionLowRate);
}
static int dissect_noSilenceSuppressionHighRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noSilenceSuppressionHighRate);
}
static int dissect_silenceSuppressionLowRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_silenceSuppressionLowRate);
}
static int dissect_silenceSuppressionHighRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_silenceSuppressionHighRate);
}
static int dissect_audioLayer1Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioLayer1Mode);
}
static int dissect_audioLayer2Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioLayer2Mode);
}
static int dissect_audioLayer3Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioLayer3Mode);
}
static int dissect_audioSampling32kMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling32kMode);
}
static int dissect_audioSampling44k1Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling44k1Mode);
}
static int dissect_audioSampling48kMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling48kMode);
}
static int dissect_singleChannelMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_singleChannelMode);
}
static int dissect_twoChannelStereo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_twoChannelStereo);
}
static int dissect_twoChannelDual(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_twoChannelDual);
}
static int dissect_audioSampling16kMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling16kMode);
}
static int dissect_audioSampling22k05Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling22k05Mode);
}
static int dissect_audioSampling24kMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_audioSampling24kMode);
}
static int dissect_threeChannels2_1Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_threeChannels2_1Mode);
}
static int dissect_threeChannels3_0Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_threeChannels3_0Mode);
}
static int dissect_fourChannels2_0_2_0Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_fourChannels2_0_2_0Mode);
}
static int dissect_fourChannels2_2Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_fourChannels2_2Mode);
}
static int dissect_fourChannels3_1Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_fourChannels3_1Mode);
}
static int dissect_fiveChannels3_0_2_0Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_fiveChannels3_0_2_0Mode);
}
static int dissect_fiveChannels3_2Mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_fiveChannels3_2Mode);
}
static int dissect_h233Encryption(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_h233Encryption);
}
static int dissect_systemLoop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_systemLoop);
}
static int dissect_canNotPerformLoop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_canNotPerformLoop);
}
static int dissect_terminalListRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_terminalListRequest);
}
static int dissect_makeMeChair(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_makeMeChair);
}
static int dissect_cancelMakeMeChair(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMakeMeChair);
}
static int dissect_enterH243Password(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_enterH243Password);
}
static int dissect_enterH243TerminalID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_enterH243TerminalID);
}
static int dissect_enterH243ConferenceID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_enterH243ConferenceID);
}
static int dissect_enterExtensionAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_enterExtensionAddress);
}
static int dissect_requestChairTokenOwner(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_requestChairTokenOwner);
}
static int dissect_requestAllTerminalIDs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_requestAllTerminalIDs);
}
static int dissect_videoCommandReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoCommandReject);
}
static int dissect_terminalDropReject(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_terminalDropReject);
}
static int dissect_grantedChairToken(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_grantedChairToken);
}
static int dissect_deniedChairToken(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_deniedChairToken);
}
static int dissect_grantedBroadcastMyLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_grantedBroadcastMyLogicalChannel);
}
static int dissect_deniedBroadcastMyLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_deniedBroadcastMyLogicalChannel);
}
static int dissect_grantedMakeTerminalBroadcaster(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_grantedMakeTerminalBroadcaster);
}
static int dissect_deniedMakeTerminalBroadcaster(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_deniedMakeTerminalBroadcaster);
}
static int dissect_grantedSendThisSource(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_grantedSendThisSource);
}
static int dissect_deniedSendThisSource(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_deniedSendThisSource);
}
static int dissect_masterActivate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_masterActivate);
}
static int dissect_slaveActivate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_slaveActivate);
}
static int dissect_deActivate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_deActivate);
}
static int dissect_accept(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_accept);
}
static int dissect_functionNotSupportedFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_functionNotSupportedFlag);
}
static int dissect_currentIntervalInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_currentIntervalInformation);
}
static int dissect_accepted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_accepted);
}
static int dissect_connectionsNotAvailable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_connectionsNotAvailable);
}
static int dissect_userRejected(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_userRejected);
}
static int dissect_n_isdn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_n_isdn);
}
static int dissect_gstn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_gstn);
}
static int dissect_mobile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_mobile);
}
static int dissect_undefinedReason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_undefinedReason);
}
static int dissect_insufficientResources(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_insufficientResources);
}
static int dissect_genericRequestFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_genericRequestFlag);
}
static int dissect_encryptionIVRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_encryptionIVRequest);
}
static int dissect_wholeMultiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_wholeMultiplex);
}
static int dissect_noRestriction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noRestriction);
}
static int dissect_disconnect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_disconnect);
}
static int dissect_telephonyMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_telephonyMode);
}
static int dissect_v8bis(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v8bis);
}
static int dissect_v34DSVD(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v34DSVD);
}
static int dissect_v34DuplexFAX(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v34DuplexFAX);
}
static int dissect_v34H324(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v34H324);
}
static int dissect_v140(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_v140);
}
static int dissect_terminalOnHold(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_terminalOnHold);
}
static int dissect_cancelMakeTerminalBroadcaster(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMakeTerminalBroadcaster);
}
static int dissect_cancelSendThisSource(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelSendThisSource);
}
static int dissect_dropConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_dropConference);
}
static int dissect_masterToSlave(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_masterToSlave);
}
static int dissect_slaveToMaster(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_slaveToMaster);
}
static int dissect_equaliseDelay(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_equaliseDelay);
}
static int dissect_zeroDelay(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_zeroDelay);
}
static int dissect_multipointModeCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multipointModeCommand);
}
static int dissect_cancelMultipointModeCommand(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMultipointModeCommand);
}
static int dissect_videoFreezePicture(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoFreezePicture);
}
static int dissect_videoFastUpdatePicture(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoFastUpdatePicture);
}
static int dissect_videoSendSyncEveryGOB(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoSendSyncEveryGOB);
}
static int dissect_videoSendSyncEveryGOBCancel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoSendSyncEveryGOBCancel);
}
static int dissect_switchReceiveMediaOff(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_switchReceiveMediaOff);
}
static int dissect_switchReceiveMediaOn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_switchReceiveMediaOn);
}
static int dissect_progressiveRefinementAbortOne(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_progressiveRefinementAbortOne);
}
static int dissect_progressiveRefinementAbortContinuous(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_progressiveRefinementAbortContinuous);
}
static int dissect_doOneProgression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_doOneProgression);
}
static int dissect_doContinuousProgressions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_doContinuousProgressions);
}
static int dissect_doOneIndependentProgression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_doOneIndependentProgression);
}
static int dissect_doContinuousIndependentProgressions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_doContinuousIndependentProgressions);
}
static int dissect_toLevel0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_toLevel0);
}
static int dissect_toLevel1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_toLevel1);
}
static int dissect_toLevel2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_toLevel2);
}
static int dissect_toLevel2withOptionalHeader(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_toLevel2withOptionalHeader);
}
static int dissect_start(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_start);
}
static int dissect_stop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_stop);
}
static int dissect_nullClockRecoveryflag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_nullClockRecoveryflag);
}
static int dissect_srtsClockRecovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_srtsClockRecovery);
}
static int dissect_adaptiveClockRecoveryFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_adaptiveClockRecoveryFlag);
}
static int dissect_nullErrorCorrectionFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_nullErrorCorrectionFlag);
}
static int dissect_longInterleaverFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_longInterleaverFlag);
}
static int dissect_shortInterleaverFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_shortInterleaverFlag);
}
static int dissect_errorCorrectionOnlyFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_errorCorrectionOnlyFlag);
}
static int dissect_noMultiplex(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_noMultiplex);
}
static int dissect_transportStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_transportStream);
}
static int dissect_programStreamFlag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_programStreamFlag);
}
static int dissect_synchronized(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_synchronized);
}
static int dissect_reconfiguration(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_reconfiguration);
}
static int dissect_syntaxError(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_syntaxError);
}
static int dissect_semanticError(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_semanticError);
}
static int dissect_unknownFunction(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_unknownFunction);
}
static int dissect_seenByAtLeastOneOther(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_seenByAtLeastOneOther);
}
static int dissect_cancelSeenByAtLeastOneOther(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelSeenByAtLeastOneOther);
}
static int dissect_seenByAll(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_seenByAll);
}
static int dissect_cancelSeenByAll(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelSeenByAll);
}
static int dissect_requestForFloor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_requestForFloor);
}
static int dissect_withdrawChairToken(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_withdrawChairToken);
}
static int dissect_logicalChannelActive(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_logicalChannelActive);
}
static int dissect_logicalChannelInactive(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_logicalChannelInactive);
}
static int dissect_multipointConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multipointConference);
}
static int dissect_cancelMultipointConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMultipointConference);
}
static int dissect_multipointZeroComm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multipointZeroComm);
}
static int dissect_cancelMultipointZeroComm(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMultipointZeroComm);
}
static int dissect_multipointSecondaryStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_multipointSecondaryStatus);
}
static int dissect_cancelMultipointSecondaryStatus(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_cancelMultipointSecondaryStatus);
}
static int dissect_videoIndicateReadyToActivate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_videoIndicateReadyToActivate);
}
static int dissect_rtpPayloadIndication(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NULL(tvb, offset, pinfo, tree, hf_h245_rtpPayloadIndication);
}



static int
dissect_h245_INTEGER_1_15(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 15U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maximumNestingDepth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_15(tvb, offset, pinfo, tree, hf_h245_maximumNestingDepth);
}



static int
dissect_h245_INTEGER_2_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           2U, 255U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maximumElementListSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_2_255(tvb, offset, pinfo, tree, hf_h245_maximumElementListSize);
}
static int dissect_maximumSubElementListSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_2_255(tvb, offset, pinfo, tree, hf_h245_maximumSubElementListSize);
}

static const per_sequence_t T_enhanced_sequence[] = {
  { "maximumNestingDepth"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumNestingDepth },
  { "maximumElementListSize"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumElementListSize },
  { "maximumSubElementListSize"   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumSubElementListSize },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_enhanced(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_enhanced, T_enhanced_sequence);

  return offset;
}
static int dissect_enhanced(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_enhanced(tvb, offset, pinfo, tree, hf_h245_enhanced);
}


static const value_string h245_T_h223MultiplexTableCapability_vals[] = {
  {   0, "basic" },
  {   1, "enhanced" },
  { 0, NULL }
};

static const per_choice_t T_h223MultiplexTableCapability_choice[] = {
  {   0, "basic"                       , ASN1_NO_EXTENSIONS     , dissect_basic },
  {   1, "enhanced"                    , ASN1_NO_EXTENSIONS     , dissect_enhanced },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_h223MultiplexTableCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_h223MultiplexTableCapability, T_h223MultiplexTableCapability_choice, "T_h223MultiplexTableCapability",
                              NULL);

  return offset;
}
static int dissect_h223MultiplexTableCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_h223MultiplexTableCapability(tvb, offset, pinfo, tree, hf_h245_h223MultiplexTableCapability);
}

static const per_sequence_t T_mobileOperationTransmitCapability_sequence[] = {
  { "modeChangeCapability"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_modeChangeCapability },
  { "h223AnnexA"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h223AnnexA },
  { "h223AnnexADoubleFlag"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h223AnnexADoubleFlagFlag },
  { "h223AnnexB"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h223AnnexB },
  { "h223AnnexBwithHeader"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h223AnnexBwithHeader },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_mobileOperationTransmitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_mobileOperationTransmitCapability, T_mobileOperationTransmitCapability_sequence);

  return offset;
}
static int dissect_mobileOperationTransmitCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mobileOperationTransmitCapability(tvb, offset, pinfo, tree, hf_h245_mobileOperationTransmitCapability);
}

static const per_sequence_t H223AnnexCCapability_sequence[] = {
  { "videoWithAL1M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL1M },
  { "videoWithAL2M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL2M },
  { "videoWithAL3M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL3M },
  { "audioWithAL1M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL1M },
  { "audioWithAL2M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL2M },
  { "audioWithAL3M"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL3M },
  { "dataWithAL1M"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL1M },
  { "dataWithAL2M"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL2M },
  { "dataWithAL3M"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL3M },
  { "alpduInterleaving"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alpduInterleaving },
  { "maximumAL1MPDUSize"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAL1MPDUSize },
  { "maximumAL2MSDUSize"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAL2MSDUSize },
  { "maximumAL3MSDUSize"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAL3MSDUSize },
  { "rsCodeCapability"            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rsCodeCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223AnnexCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223AnnexCCapability, H223AnnexCCapability_sequence);

  return offset;
}
static int dissect_h223AnnexCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AnnexCCapability(tvb, offset, pinfo, tree, hf_h245_h223AnnexCCapability);
}



static int
dissect_h245_INTEGER_1_19200(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 19200U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_bitRate_1_19200(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_19200(tvb, offset, pinfo, tree, hf_h245_bitRate_1_19200);
}
static int dissect_maxBitRate_1_19200(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_19200(tvb, offset, pinfo, tree, hf_h245_maxBitRate_1_19200);
}



static int
dissect_h245_INTEGER_1_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 255U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maximumSampleSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_maximumSampleSize);
}
static int dissect_scale_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_scale_x);
}
static int dissect_scale_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_scale_y);
}
static int dissect_width(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_width);
}
static int dissect_height(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_height);
}
static int dissect_associatedSessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_associatedSessionID);
}
static int dissect_protectedSessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_protectedSessionID);
}
static int dissect_sessionID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_sessionID);
}
static int dissect_sessionDependency(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_sessionDependency);
}
static int dissect_sampleSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_sampleSize);
}
static int dissect_samplesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_255(tvb, offset, pinfo, tree, hf_h245_samplesPerFrame);
}



static int
dissect_h245_INTEGER_1_65025(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 65025U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maximumPayloadLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65025(tvb, offset, pinfo, tree, hf_h245_maximumPayloadLength);
}

static const per_sequence_t T_mobileMultilinkFrameCapability_sequence[] = {
  { "maximumSampleSize"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumSampleSize },
  { "maximumPayloadLength"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumPayloadLength },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_mobileMultilinkFrameCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_mobileMultilinkFrameCapability, T_mobileMultilinkFrameCapability_sequence);

  return offset;
}
static int dissect_mobileMultilinkFrameCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mobileMultilinkFrameCapability(tvb, offset, pinfo, tree, hf_h245_mobileMultilinkFrameCapability);
}

static const per_sequence_t H223Capability_sequence[] = {
  { "transportWithI-frames"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transportWithI_frames },
  { "videoWithAL1"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL1 },
  { "videoWithAL2"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL2 },
  { "videoWithAL3"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoWithAL3 },
  { "audioWithAL1"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL1 },
  { "audioWithAL2"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL2 },
  { "audioWithAL3"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioWithAL3 },
  { "dataWithAL1"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL1 },
  { "dataWithAL2"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL2 },
  { "dataWithAL3"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataWithAL3 },
  { "maximumAl2SDUSize"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAl2SDUSize },
  { "maximumAl3SDUSize"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAl3SDUSize },
  { "maximumDelayJitter"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumDelayJitter },
  { "h223MultiplexTableCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h223MultiplexTableCapability },
  { "maxMUXPDUSizeCapability"     , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_maxMUXPDUSizeCapability },
  { "nsrpSupport"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_nsrpSupport },
  { "mobileOperationTransmitCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_mobileOperationTransmitCapability },
  { "h223AnnexCCapability"        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h223AnnexCCapability },
  { "bitRate"                     , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_bitRate_1_19200 },
  { "mobileMultilinkFrameCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_mobileMultilinkFrameCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223Capability, H223Capability_sequence);

  return offset;
}
static int dissect_h223Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223Capability(tvb, offset, pinfo, tree, hf_h245_h223Capability);
}



static int
dissect_h245_INTEGER_2_8191(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           2U, 8191U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_numOfDLCS(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_2_8191(tvb, offset, pinfo, tree, hf_h245_numOfDLCS);
}



static int
dissect_h245_INTEGER_1_4095(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 4095U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_n401Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4095(tvb, offset, pinfo, tree, hf_h245_n401Capability);
}
static int dissect_n401(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4095(tvb, offset, pinfo, tree, hf_h245_n401);
}



static int
dissect_h245_INTEGER_1_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 127U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maxWindowSizeCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_127(tvb, offset, pinfo, tree, hf_h245_maxWindowSizeCapability);
}
static int dissect_clockDivisor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_127(tvb, offset, pinfo, tree, hf_h245_clockDivisor);
}
static int dissect_windowSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_127(tvb, offset, pinfo, tree, hf_h245_windowSize);
}

static const per_sequence_t V75Capability_sequence[] = {
  { "audioHeader"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioHeader },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V75Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V75Capability, V75Capability_sequence);

  return offset;
}
static int dissect_v75Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V75Capability(tvb, offset, pinfo, tree, hf_h245_v75Capability);
}

static const per_sequence_t V76Capability_sequence[] = {
  { "suspendResumeCapabilitywAddress", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_suspendResumeCapabilitywAddress },
  { "suspendResumeCapabilitywoAddress", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_suspendResumeCapabilitywoAddress },
  { "rejCapability"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rejCapability },
  { "sREJCapability"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sREJCapability },
  { "mREJCapability"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mREJCapability },
  { "crc8bitCapability"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crc8bitCapability },
  { "crc16bitCapability"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crc16bitCapability },
  { "crc32bitCapability"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crc32bitCapability },
  { "uihCapability"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_uihCapability },
  { "numOfDLCS"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numOfDLCS },
  { "twoOctetAddressFieldCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_twoOctetAddressFieldCapability },
  { "loopBackTestCapability"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_loopBackTestCapability },
  { "n401Capability"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_n401Capability },
  { "maxWindowSizeCapability"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxWindowSizeCapability },
  { "v75Capability"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_v75Capability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V76Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V76Capability, V76Capability_sequence);

  return offset;
}
static int dissect_v76Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V76Capability(tvb, offset, pinfo, tree, hf_h245_v76Capability);
}



static int
dissect_h245_INTEGER_1_65536(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 65536U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_mpuTotalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65536(tvb, offset, pinfo, tree, hf_h245_mpuTotalNumber);
}
static int dissect_numberOfCodewords(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_65536(tvb, offset, pinfo, tree, hf_h245_numberOfCodewords);
}

static const per_sequence_t V42bis_sequence[] = {
  { "numberOfCodewords"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numberOfCodewords },
  { "maximumStringLength"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumStringLength },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V42bis(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V42bis, V42bis_sequence);

  return offset;
}
static int dissect_v42bis(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V42bis(tvb, offset, pinfo, tree, hf_h245_v42bis);
}


static const value_string h245_CompressionType_vals[] = {
  {   0, "v42bis" },
  { 0, NULL }
};

static const per_choice_t CompressionType_choice[] = {
  {   0, "v42bis"                      , ASN1_EXTENSION_ROOT    , dissect_v42bis },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_CompressionType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_CompressionType, CompressionType_choice, "CompressionType",
                              NULL);

  return offset;
}
static int dissect_transmitCompression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CompressionType(tvb, offset, pinfo, tree, hf_h245_transmitCompression);
}
static int dissect_receiveCompression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CompressionType(tvb, offset, pinfo, tree, hf_h245_receiveCompression);
}
static int dissect_transmitAndReceiveCompression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CompressionType(tvb, offset, pinfo, tree, hf_h245_transmitAndReceiveCompression);
}


static const value_string h245_T_v76wCompression_vals[] = {
  {   0, "transmitCompression" },
  {   1, "receiveCompression" },
  {   2, "transmitAndReceiveCompression" },
  { 0, NULL }
};

static const per_choice_t T_v76wCompression_choice[] = {
  {   0, "transmitCompression"         , ASN1_EXTENSION_ROOT    , dissect_transmitCompression },
  {   1, "receiveCompression"          , ASN1_EXTENSION_ROOT    , dissect_receiveCompression },
  {   2, "transmitAndReceiveCompression", ASN1_EXTENSION_ROOT    , dissect_transmitAndReceiveCompression },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_v76wCompression(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_v76wCompression, T_v76wCompression_choice, "T_v76wCompression",
                              NULL);

  return offset;
}
static int dissect_v76wCompression(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_v76wCompression(tvb, offset, pinfo, tree, hf_h245_v76wCompression);
}


const value_string DataProtocolCapability_vals[] = {
  {   0, "nonStandard" },
  {   1, "v14buffered" },
  {   2, "v42lapm" },
  {   3, "hdlcFrameTunnelling" },
  {   4, "h310SeparateVCStack" },
  {   5, "h310SingleVCStack" },
  {   6, "transparent" },
  {   7, "segmentationAndReassembly" },
  {   8, "hdlcFrameTunnelingwSAR" },
  {   9, "v120" },
  {  10, "separateLANStack" },
  {  11, "v76wCompression" },
  {  12, "tcp" },
  {  13, "udp" },
  { 0, NULL }
};

static const per_choice_t DataProtocolCapability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "v14buffered"                 , ASN1_EXTENSION_ROOT    , dissect_v14buffered },
  {   2, "v42lapm"                     , ASN1_EXTENSION_ROOT    , dissect_v42lapm },
  {   3, "hdlcFrameTunnelling"         , ASN1_EXTENSION_ROOT    , dissect_hdlcFrameTunnelling },
  {   4, "h310SeparateVCStack"         , ASN1_EXTENSION_ROOT    , dissect_h310SeparateVCStack },
  {   5, "h310SingleVCStack"           , ASN1_EXTENSION_ROOT    , dissect_h310SingleVCStack },
  {   6, "transparent"                 , ASN1_EXTENSION_ROOT    , dissect_transparent },
  {   7, "segmentationAndReassembly"   , ASN1_NOT_EXTENSION_ROOT, dissect_segmentationAndReassembly },
  {   8, "hdlcFrameTunnelingwSAR"      , ASN1_NOT_EXTENSION_ROOT, dissect_hdlcFrameTunnelingwSAR },
  {   9, "v120"                        , ASN1_NOT_EXTENSION_ROOT, dissect_v120 },
  {  10, "separateLANStack"            , ASN1_NOT_EXTENSION_ROOT, dissect_separateLANStack },
  {  11, "v76wCompression"             , ASN1_NOT_EXTENSION_ROOT, dissect_v76wCompression },
  {  12, "tcp"                         , ASN1_NOT_EXTENSION_ROOT, dissect_tcp },
  {  13, "udp"                         , ASN1_NOT_EXTENSION_ROOT, dissect_udp },
  { 0, NULL, 0, NULL }
};

int
dissect_h245_DataProtocolCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_DataProtocolCapability, DataProtocolCapability_choice, "DataProtocolCapability",
                              NULL);

  return offset;
}
static int dissect_t120(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t120);
}
static int dissect_dsm_cc(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_dsm_cc);
}
static int dissect_userData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_userData);
}
static int dissect_t84Protocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t84Protocol);
}
static int dissect_t434(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t434);
}
static int dissect_h224(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_h224);
}
static int dissect_h222DataPartitioning(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_h222DataPartitioning);
}
static int dissect_t30fax(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t30fax);
}
static int dissect_t140(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t140);
}
static int dissect_t38FaxProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t38FaxProtocol);
}
static int dissect_nlpidProtocol(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_nlpidProtocol);
}
static int dissect_transport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_transport);
}
static int dissect_t84DataProtocolCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataProtocolCapability(tvb, offset, pinfo, tree, hf_h245_t84DataProtocolCapability);
}

static const per_sequence_t T_t84Restricted_sequence[] = {
  { "qcif"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_qcif_bool },
  { "cif"                         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_cif_bool },
  { "ccir601Seq"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ccir601Seq },
  { "ccir601Prog"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ccir601Prog },
  { "hdtvSeq"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_hdtvSeq },
  { "hdtvProg"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_hdtvProg },
  { "g3FacsMH200x100"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_g3FacsMH200x100 },
  { "g3FacsMH200x200"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_g3FacsMH200x200 },
  { "g4FacsMMR200x100"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_g4FacsMMR200x100 },
  { "g4FacsMMR200x200"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_g4FacsMMR200x200 },
  { "jbig200x200Seq"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_jbig200x200Seq },
  { "jbig200x200Prog"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_jbig200x200Prog },
  { "jbig300x300Seq"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_jbig300x300Seq },
  { "jbig300x300Prog"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_jbig300x300Prog },
  { "digPhotoLow"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_digPhotoLow },
  { "digPhotoMedSeq"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_digPhotoMedSeq },
  { "digPhotoMedProg"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_digPhotoMedProg },
  { "digPhotoHighSeq"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_digPhotoHighSeq },
  { "digPhotoHighProg"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_digPhotoHighProg },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_t84Restricted(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_t84Restricted, T_t84Restricted_sequence);

  return offset;
}
static int dissect_t84Restricted(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t84Restricted(tvb, offset, pinfo, tree, hf_h245_t84Restricted);
}


static const value_string h245_T84Profile_vals[] = {
  {   0, "t84Unrestricted" },
  {   1, "t84Restricted" },
  { 0, NULL }
};

static const per_choice_t T84Profile_choice[] = {
  {   0, "t84Unrestricted"             , ASN1_NO_EXTENSIONS     , dissect_t84Unrestricted },
  {   1, "t84Restricted"               , ASN1_NO_EXTENSIONS     , dissect_t84Restricted },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T84Profile(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T84Profile, T84Profile_choice, "T84Profile",
                              NULL);

  return offset;
}
static int dissect_t84Profile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T84Profile(tvb, offset, pinfo, tree, hf_h245_t84Profile);
}

static const per_sequence_t T_t84_sequence[] = {
  { "t84Protocol"                 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t84Protocol },
  { "t84Profile"                  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t84Profile },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_t84(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_t84, T_t84_sequence);

  return offset;
}
static int dissect_t84(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t84(tvb, offset, pinfo, tree, hf_h245_t84);
}

static const per_sequence_t Nlpid_sequence[] = {
  { "nlpidProtocol"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_nlpidProtocol },
  { "nlpidData"                   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_nlpidData },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_Nlpid(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_Nlpid, Nlpid_sequence);

  return offset;
}
static int dissect_nlpid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Nlpid(tvb, offset, pinfo, tree, hf_h245_nlpid);
}


static const value_string h245_T38FaxRateManagement_vals[] = {
  {   0, "localTCF" },
  {   1, "transferredTCF" },
  { 0, NULL }
};

static const per_choice_t T38FaxRateManagement_choice[] = {
  {   0, "localTCF"                    , ASN1_EXTENSION_ROOT    , dissect_localTCF },
  {   1, "transferredTCF"              , ASN1_EXTENSION_ROOT    , dissect_transferredTCF },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T38FaxRateManagement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T38FaxRateManagement, T38FaxRateManagement_choice, "T38FaxRateManagement",
                              NULL);

  return offset;
}
static int dissect_t38FaxRateManagement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T38FaxRateManagement(tvb, offset, pinfo, tree, hf_h245_t38FaxRateManagement);
}



static int
dissect_h245_INTEGER(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_integer(tvb, offset, pinfo, tree, hf_index,
                               NULL, NULL);

  return offset;
}
static int dissect_t38FaxMaxBuffer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER(tvb, offset, pinfo, tree, hf_h245_t38FaxMaxBuffer);
}
static int dissect_t38FaxMaxDatagram(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER(tvb, offset, pinfo, tree, hf_h245_t38FaxMaxDatagram);
}


static const value_string h245_T_t38FaxUdpEC_vals[] = {
  {   0, "t38UDPFEC" },
  {   1, "t38UDPRedundancy" },
  { 0, NULL }
};

static const per_choice_t T_t38FaxUdpEC_choice[] = {
  {   0, "t38UDPFEC"                   , ASN1_EXTENSION_ROOT    , dissect_t38UDPFEC },
  {   1, "t38UDPRedundancy"            , ASN1_EXTENSION_ROOT    , dissect_t38UDPRedundancy },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_t38FaxUdpEC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_t38FaxUdpEC, T_t38FaxUdpEC_choice, "T_t38FaxUdpEC",
                              NULL);

  return offset;
}
static int dissect_t38FaxUdpEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t38FaxUdpEC(tvb, offset, pinfo, tree, hf_h245_t38FaxUdpEC);
}

static const per_sequence_t T38FaxUdpOptions_sequence[] = {
  { "t38FaxMaxBuffer"             , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_t38FaxMaxBuffer },
  { "t38FaxMaxDatagram"           , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_t38FaxMaxDatagram },
  { "t38FaxUdpEC"                 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t38FaxUdpEC },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T38FaxUdpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T38FaxUdpOptions, T38FaxUdpOptions_sequence);

  return offset;
}
static int dissect_t38FaxUdpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T38FaxUdpOptions(tvb, offset, pinfo, tree, hf_h245_t38FaxUdpOptions);
}

static const per_sequence_t T38FaxTcpOptions_sequence[] = {
  { "t38TCPBidirectionalMode"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_t38TCPBidirectionalMode },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T38FaxTcpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T38FaxTcpOptions, T38FaxTcpOptions_sequence);

  return offset;
}
static int dissect_t38FaxTcpOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T38FaxTcpOptions(tvb, offset, pinfo, tree, hf_h245_t38FaxTcpOptions);
}

static const per_sequence_t T38FaxProfile_sequence[] = {
  { "fillBitRemoval"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fillBitRemoval },
  { "transcodingJBIG"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transcodingJBIG },
  { "transcodingMMR"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transcodingMMR },
  { "version"                     , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_version },
  { "t38FaxRateManagement"        , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t38FaxRateManagement },
  { "t38FaxUdpOptions"            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_t38FaxUdpOptions },
  { "t38FaxTcpOptions"            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_t38FaxTcpOptions },
  { NULL, 0, 0, NULL }
};

int
dissect_h245_T38FaxProfile(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T38FaxProfile, T38FaxProfile_sequence);

  return offset;
}
static int dissect_t38FaxProfile(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T38FaxProfile(tvb, offset, pinfo, tree, hf_h245_t38FaxProfile);
}

static const per_sequence_t T_t38fax_sequence[] = {
  { "t38FaxProtocol"              , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t38FaxProtocol },
  { "t38FaxProfile"               , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_t38FaxProfile },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_t38fax(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_t38fax, T_t38fax_sequence);

  return offset;
}
static int dissect_t38fax(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t38fax(tvb, offset, pinfo, tree, hf_h245_t38fax);
}


static int
dissect_h245_T_standard(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_object_identifier(tvb, offset, pinfo, tree, hf_index,
                                         standard_oid_str);


  return offset;
}
static int dissect_standardOid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_standard(tvb, offset, pinfo, tree, hf_h245_standardOid);
}


static int
dissect_h245_OCTET_STRING_SIZE_16(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    16, 16,
                                    NULL, NULL);

  return offset;
}
static int dissect_uuid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_16(tvb, offset, pinfo, tree, hf_h245_uuid);
}
static int dissect_ip6_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_16(tvb, offset, pinfo, tree, hf_h245_ip6_network);
}
static int dissect_netBios(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_16(tvb, offset, pinfo, tree, hf_h245_netBios);
}
static int dissect_mip6_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_16(tvb, offset, pinfo, tree, hf_h245_mip6_network);
}
static int dissect_conferenceIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_16(tvb, offset, pinfo, tree, hf_h245_conferenceIdentifier);
}


static int
dissect_h245_IA5String_SIZE_1_64(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_IA5String(tvb, offset, pinfo, tree, hf_index,
                                 1, 64);

  return offset;
}
static int dissect_domainBased(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IA5String_SIZE_1_64(tvb, offset, pinfo, tree, hf_h245_domainBased);
}


static const value_string h245_CapabilityIdentifier_vals[] = {
  {   0, "standard" },
  {   1, "h221NonStandard" },
  {   2, "uuid" },
  {   3, "domainBased" },
  { 0, NULL }
};

static const per_choice_t CapabilityIdentifier_choice[] = {
  {   0, "standard"                    , ASN1_EXTENSION_ROOT    , dissect_standardOid },
  {   1, "h221NonStandard"             , ASN1_EXTENSION_ROOT    , dissect_h221NonStandard },
  {   2, "uuid"                        , ASN1_EXTENSION_ROOT    , dissect_uuid },
  {   3, "domainBased"                 , ASN1_EXTENSION_ROOT    , dissect_domainBased },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_CapabilityIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_CapabilityIdentifier, CapabilityIdentifier_choice, "CapabilityIdentifier",
                              NULL);

  return offset;
}
static int dissect_messageIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityIdentifier(tvb, offset, pinfo, tree, hf_h245_messageIdentifier);
}
static int dissect_capabilityIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityIdentifier(tvb, offset, pinfo, tree, hf_h245_capabilityIdentifier);
}



static int
dissect_h245_INTEGER_0_4294967295(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 4294967295U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_luminanceSampleRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_luminanceSampleRate);
}
static int dissect_maxBitRate2_0_4294967295(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_maxBitRate2_0_4294967295);
}
static int dissect_unsigned32Min(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_unsigned32Min);
}
static int dissect_unsigned32Max(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_unsigned32Max);
}
static int dissect_bitRate_0_4294967295(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_bitRate_0_4294967295);
}
static int dissect_callAssociationNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_callAssociationNumber);
}
static int dissect_channelTag(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_channelTag);
}
static int dissect_sequenceNum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_sequenceNum);
}
static int dissect_timestamp(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_timestamp);
}
static int dissect_expirationTime(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_4294967295(tvb, offset, pinfo, tree, hf_h245_expirationTime);
}



static int
dissect_h245_INTEGER_0_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 127U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_standard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_127(tvb, offset, pinfo, tree, hf_h245_standard);
}
static int dissect_rsCodeCorrection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_127(tvb, offset, pinfo, tree, hf_h245_rsCodeCorrection);
}
static int dissect_payloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_127(tvb, offset, pinfo, tree, hf_h245_payloadType);
}
static int dissect_protectedPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_127(tvb, offset, pinfo, tree, hf_h245_protectedPayloadType);
}


static const value_string h245_ParameterIdentifier_vals[] = {
  {   0, "standard" },
  {   1, "h221NonStandard" },
  {   2, "uuid" },
  {   3, "domainBased" },
  { 0, NULL }
};

static const per_choice_t ParameterIdentifier_choice[] = {
  {   0, "standard"                    , ASN1_EXTENSION_ROOT    , dissect_standard },
  {   1, "h221NonStandard"             , ASN1_EXTENSION_ROOT    , dissect_h221NonStandard },
  {   2, "uuid"                        , ASN1_EXTENSION_ROOT    , dissect_uuid },
  {   3, "domainBased"                 , ASN1_EXTENSION_ROOT    , dissect_domainBased },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_ParameterIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_ParameterIdentifier, ParameterIdentifier_choice, "ParameterIdentifier",
                              NULL);

  return offset;
}
static int dissect_parameterIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ParameterIdentifier(tvb, offset, pinfo, tree, hf_h245_parameterIdentifier);
}
static int dissect_supersedes_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ParameterIdentifier(tvb, offset, pinfo, tree, hf_h245_supersedes_item);
}


static int
dissect_h245_SEQUENCE_OF_GenericParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_GenericParameter, dissect_messageContent_item);

  return offset;
}
static int dissect_messageContent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, pinfo, tree, hf_h245_messageContent);
}
static int dissect_collapsing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, pinfo, tree, hf_h245_collapsing);
}
static int dissect_nonCollapsing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, pinfo, tree, hf_h245_nonCollapsing);
}
static int dissect_genericParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_GenericParameter(tvb, offset, pinfo, tree, hf_h245_genericParameter);
}


static const value_string h245_ParameterValue_vals[] = {
  {   0, "logical" },
  {   1, "booleanArray" },
  {   2, "unsignedMin" },
  {   3, "unsignedMax" },
  {   4, "unsigned32Min" },
  {   5, "unsigned32Max" },
  {   6, "octetString" },
  {   7, "genericParameter" },
  { 0, NULL }
};

static const per_choice_t ParameterValue_choice[] = {
  {   0, "logical"                     , ASN1_EXTENSION_ROOT    , dissect_logical },
  {   1, "booleanArray"                , ASN1_EXTENSION_ROOT    , dissect_booleanArray },
  {   2, "unsignedMin"                 , ASN1_EXTENSION_ROOT    , dissect_unsignedMin },
  {   3, "unsignedMax"                 , ASN1_EXTENSION_ROOT    , dissect_unsignedMax },
  {   4, "unsigned32Min"               , ASN1_EXTENSION_ROOT    , dissect_unsigned32Min },
  {   5, "unsigned32Max"               , ASN1_EXTENSION_ROOT    , dissect_unsigned32Max },
  {   6, "octetString"                 , ASN1_EXTENSION_ROOT    , dissect_octetString },
  {   7, "genericParameter"            , ASN1_EXTENSION_ROOT    , dissect_genericParameter },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_ParameterValue(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_ParameterValue, ParameterValue_choice, "ParameterValue",
                              NULL);

  return offset;
}
static int dissect_parameterValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ParameterValue(tvb, offset, pinfo, tree, hf_h245_parameterValue);
}


static int
dissect_h245_SEQUENCE_OF_ParameterIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_ParameterIdentifier, dissect_supersedes_item);

  return offset;
}
static int dissect_supersedes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_ParameterIdentifier(tvb, offset, pinfo, tree, hf_h245_supersedes);
}

static const per_sequence_t GenericParameter_sequence[] = {
  { "parameterIdentifier"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_parameterIdentifier },
  { "parameterValue"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_parameterValue },
  { "supersedes"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_supersedes },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_GenericParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_GenericParameter, GenericParameter_sequence);

  return offset;
}

static const per_sequence_t GenericCapability_sequence[] = {
  { "capabilityIdentifier"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_capabilityIdentifier },
  { "maxBitRate"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_maxBitRate2_0_4294967295 },
  { "collapsing"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_collapsing },
  { "nonCollapsing"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonCollapsing },
  { "nonCollapsingRaw"            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonCollapsingRaw },
  { "transport"                   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_transport },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_GenericCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_GenericCapability, GenericCapability_sequence);

  return offset;
}
static int dissect_genericControlCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericControlCapability);
}
static int dissect_genericMultiplexCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericMultiplexCapability);
}
static int dissect_genericVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericVideoCapability);
}
static int dissect_videoCapabilityExtension_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_videoCapabilityExtension_item);
}
static int dissect_genericAudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericAudioCapability);
}
static int dissect_genericDataCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericDataCapability);
}
static int dissect_genericModeParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericModeParameters);
}
static int dissect_genericVideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericVideoMode);
}
static int dissect_genericAudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericAudioMode);
}
static int dissect_genericDataMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GenericCapability(tvb, offset, pinfo, tree, hf_h245_genericDataMode);
}


static const value_string h245_Application_vals[] = {
  {   0, "nonStandard" },
  {   1, "t120" },
  {   2, "dsm-cc" },
  {   3, "userData" },
  {   4, "t84" },
  {   5, "t434" },
  {   6, "h224" },
  {   7, "nlpid" },
  {   8, "dsvdControl" },
  {   9, "h222DataPartitioning" },
  {  10, "t30fax" },
  {  11, "t140" },
  {  12, "t38fax" },
  {  13, "genericDataCapability" },
  { 0, NULL }
};

static const per_choice_t Application_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "t120"                        , ASN1_EXTENSION_ROOT    , dissect_t120 },
  {   2, "dsm-cc"                      , ASN1_EXTENSION_ROOT    , dissect_dsm_cc },
  {   3, "userData"                    , ASN1_EXTENSION_ROOT    , dissect_userData },
  {   4, "t84"                         , ASN1_EXTENSION_ROOT    , dissect_t84 },
  {   5, "t434"                        , ASN1_EXTENSION_ROOT    , dissect_t434 },
  {   6, "h224"                        , ASN1_EXTENSION_ROOT    , dissect_h224 },
  {   7, "nlpid"                       , ASN1_EXTENSION_ROOT    , dissect_nlpid },
  {   8, "dsvdControl"                 , ASN1_EXTENSION_ROOT    , dissect_dsvdControl },
  {   9, "h222DataPartitioning"        , ASN1_EXTENSION_ROOT    , dissect_h222DataPartitioning },
  {  10, "t30fax"                      , ASN1_NOT_EXTENSION_ROOT, dissect_t30fax },
  {  11, "t140"                        , ASN1_NOT_EXTENSION_ROOT, dissect_t140 },
  {  12, "t38fax"                      , ASN1_NOT_EXTENSION_ROOT, dissect_t38fax },
  {  13, "genericDataCapability"       , ASN1_NOT_EXTENSION_ROOT, dissect_genericDataCapability },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_Application(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  guint32 value;

  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_Application, Application_choice, "Application",
                              &value);

        codec_type = val_to_str(value, h245_Application_vals, "<unknown>");
            if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%s %s", h245_pi->frame_label, codec_type);

  return offset;
}
static int dissect_application(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Application(tvb, offset, pinfo, tree, hf_h245_application);
}

static const per_sequence_t DataApplicationCapability_sequence[] = {
  { "application"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_application },
  { "maxBitRate"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxBitRate2_0_4294967295 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_DataApplicationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_DataApplicationCapability, DataApplicationCapability_sequence);

  return offset;
}
static int dissect_receiveDataApplicationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_receiveDataApplicationCapability);
}
static int dissect_transmitDataApplicationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_transmitDataApplicationCapability);
}
static int dissect_receiveAndTransmitDataApplicationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitDataApplicationCapability);
}
static int dissect_centralizedData_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_centralizedData_item);
}
static int dissect_distributedData_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_distributedData_item);
}
static int dissect_data(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_data);
}


static int
dissect_h245_SEQUENCE_OF_DataApplicationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_DataApplicationCapability, dissect_centralizedData_item);

  return offset;
}
static int dissect_centralizedData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_centralizedData);
}
static int dissect_distributedData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_DataApplicationCapability(tvb, offset, pinfo, tree, hf_h245_distributedData);
}

static const per_sequence_t MediaDistributionCapability_sequence[] = {
  { "centralizedControl"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_centralizedControl },
  { "distributedControl"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_distributedControl },
  { "centralizedAudio"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_centralizedAudio },
  { "distributedAudio"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_distributedAudio },
  { "centralizedVideo"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_centralizedVideo },
  { "distributedVideo"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_distributedVideo },
  { "centralizedData"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_centralizedData },
  { "distributedData"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_distributedData },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MediaDistributionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MediaDistributionCapability, MediaDistributionCapability_sequence);

  return offset;
}
static int dissect_mediaDistributionCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MediaDistributionCapability(tvb, offset, pinfo, tree, hf_h245_mediaDistributionCapability_item);
}


static int
dissect_h245_SEQUENCE_OF_MediaDistributionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_MediaDistributionCapability, dissect_mediaDistributionCapability_item);

  return offset;
}
static int dissect_mediaDistributionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_MediaDistributionCapability(tvb, offset, pinfo, tree, hf_h245_mediaDistributionCapability);
}

static const per_sequence_t MultipointCapability_sequence[] = {
  { "multicastCapability"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multicastCapability },
  { "multiUniCastConference"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multiUniCastConference },
  { "mediaDistributionCapability" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mediaDistributionCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultipointCapability, MultipointCapability_sequence);

  return offset;
}
static int dissect_receiveMultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultipointCapability(tvb, offset, pinfo, tree, hf_h245_receiveMultipointCapability);
}
static int dissect_transmitMultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultipointCapability(tvb, offset, pinfo, tree, hf_h245_transmitMultipointCapability);
}
static int dissect_receiveAndTransmitMultipointCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultipointCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitMultipointCapability);
}

static const per_sequence_t T_mcCapability_sequence[] = {
  { "centralizedConferenceMC"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_centralizedConferenceMC },
  { "decentralizedConferenceMC"   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_decentralizedConferenceMC },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_mcCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_mcCapability, T_mcCapability_sequence);

  return offset;
}
static int dissect_mcCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mcCapability(tvb, offset, pinfo, tree, hf_h245_mcCapability);
}



static int
dissect_h245_INTEGER_1_32768_(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 32768U, NULL, NULL, TRUE);

  return offset;
}
static int dissect_rfc_number(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32768_(tvb, offset, pinfo, tree, hf_h245_rfc_number);
}


static const value_string h245_T_payloadDescriptor_vals[] = {
  {   0, "nonStandardIdentifier" },
  {   1, "rfc-number" },
  {   2, "oid" },
  { 0, NULL }
};

static const per_choice_t T_payloadDescriptor_choice[] = {
  {   0, "nonStandardIdentifier"       , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "rfc-number"                  , ASN1_EXTENSION_ROOT    , dissect_rfc_number },
  {   2, "oid"                         , ASN1_EXTENSION_ROOT    , dissect_oid },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_payloadDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_payloadDescriptor, T_payloadDescriptor_choice, "T_payloadDescriptor",
                              NULL);

  return offset;
}
static int dissect_payloadDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_payloadDescriptor(tvb, offset, pinfo, tree, hf_h245_payloadDescriptor);
}

static const per_sequence_t RTPPayloadType_sequence[] = {
  { "payloadDescriptor"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_payloadDescriptor },
  { "payloadType"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_payloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RTPPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RTPPayloadType, RTPPayloadType_sequence);

  return offset;
}
static int dissect_rtpPayloadType2_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RTPPayloadType(tvb, offset, pinfo, tree, hf_h245_rtpPayloadType2_item);
}
static int dissect_rtpPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RTPPayloadType(tvb, offset, pinfo, tree, hf_h245_rtpPayloadType);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType, dissect_rtpPayloadType2_item,
                                               1, 256);

  return offset;
}
static int dissect_rtpPayloadType2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPPayloadType(tvb, offset, pinfo, tree, hf_h245_rtpPayloadType2);
}

static const per_sequence_t MediaPacketizationCapability_sequence[] = {
  { "h261aVideoPacketization"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h261aVideoPacketization },
  { "rtpPayloadType2"             , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rtpPayloadType2 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MediaPacketizationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MediaPacketizationCapability, MediaPacketizationCapability_sequence);

  return offset;
}
static int dissect_mediaPacketizationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MediaPacketizationCapability(tvb, offset, pinfo, tree, hf_h245_mediaPacketizationCapability);
}


static const value_string h245_QOSMode_vals[] = {
  {   0, "guaranteedQOS" },
  {   1, "controlledLoad" },
  { 0, NULL }
};

static const per_choice_t QOSMode_choice[] = {
  {   0, "guaranteedQOS"               , ASN1_EXTENSION_ROOT    , dissect_guaranteedQOS },
  {   1, "controlledLoad"              , ASN1_EXTENSION_ROOT    , dissect_controlledLoad },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_QOSMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_QOSMode, QOSMode_choice, "QOSMode",
                              NULL);

  return offset;
}
static int dissect_qosMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_QOSMode(tvb, offset, pinfo, tree, hf_h245_qosMode);
}



static int
dissect_h245_INTEGER_1_4294967295(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 4294967295U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_tokenRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_tokenRate);
}
static int dissect_bucketSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_bucketSize);
}
static int dissect_peakRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_peakRate);
}
static int dissect_minPoliced(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_minPoliced);
}
static int dissect_maxPktSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_maxPktSize);
}
static int dissect_sRandom(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4294967295(tvb, offset, pinfo, tree, hf_h245_sRandom);
}

static const per_sequence_t RSVPParameters_sequence[] = {
  { "qosMode"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qosMode },
  { "tokenRate"                   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_tokenRate },
  { "bucketSize"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_bucketSize },
  { "peakRate"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_peakRate },
  { "minPoliced"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_minPoliced },
  { "maxPktSize"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_maxPktSize },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RSVPParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RSVPParameters, RSVPParameters_sequence);

  return offset;
}
static int dissect_rsvpParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RSVPParameters(tvb, offset, pinfo, tree, hf_h245_rsvpParameters);
}

static const per_sequence_t ATMParameters_sequence[] = {
  { "maxNTUSize"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxNTUSize },
  { "atmUBR"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_atmUBR },
  { "atmrtVBR"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_atmrtVBR },
  { "atmnrtVBR"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_atmnrtVBR },
  { "atmABR"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_atmABR },
  { "atmCBR"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_atmCBR },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_ATMParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_ATMParameters, ATMParameters_sequence);

  return offset;
}
static int dissect_atmParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ATMParameters(tvb, offset, pinfo, tree, hf_h245_atmParameters);
}

static const per_sequence_t QOSCapability_sequence[] = {
  { "nonStandardData"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandardData },
  { "rsvpParameters"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_rsvpParameters },
  { "atmParameters"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_atmParameters },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_QOSCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_QOSCapability, QOSCapability_sequence);

  return offset;
}
static int dissect_qOSCapabilities_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_QOSCapability(tvb, offset, pinfo, tree, hf_h245_qOSCapabilities_item);
}
static int dissect_qosCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_QOSCapability(tvb, offset, pinfo, tree, hf_h245_qosCapability);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability, dissect_qOSCapabilities_item,
                                               1, 256);

  return offset;
}
static int dissect_qOSCapabilities(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_QOSCapability(tvb, offset, pinfo, tree, hf_h245_qOSCapabilities);
}

static const per_sequence_t T_atm_AAL5_compressed_sequence[] = {
  { "variable-delta"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_variable_delta },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_atm_AAL5_compressed(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_atm_AAL5_compressed, T_atm_AAL5_compressed_sequence);

  return offset;
}
static int dissect_atm_AAL5_compressed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_atm_AAL5_compressed(tvb, offset, pinfo, tree, hf_h245_atm_AAL5_compressed);
}


static const value_string h245_MediaTransportType_vals[] = {
  {   0, "ip-UDP" },
  {   1, "ip-TCP" },
  {   2, "atm-AAL5-UNIDIR" },
  {   3, "atm-AAL5-BIDIR" },
  {   4, "atm-AAL5-compressed" },
  { 0, NULL }
};

static const per_choice_t MediaTransportType_choice[] = {
  {   0, "ip-UDP"                      , ASN1_EXTENSION_ROOT    , dissect_ip_UDP },
  {   1, "ip-TCP"                      , ASN1_EXTENSION_ROOT    , dissect_ip_TCP },
  {   2, "atm-AAL5-UNIDIR"             , ASN1_EXTENSION_ROOT    , dissect_atm_AAL5_UNIDIR },
  {   3, "atm-AAL5-BIDIR"              , ASN1_EXTENSION_ROOT    , dissect_atm_AAL5_BIDIR },
  {   4, "atm-AAL5-compressed"         , ASN1_NOT_EXTENSION_ROOT, dissect_atm_AAL5_compressed },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_MediaTransportType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_MediaTransportType, MediaTransportType_choice, "MediaTransportType",
                              NULL);

  return offset;
}
static int dissect_mediaTransport(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MediaTransportType(tvb, offset, pinfo, tree, hf_h245_mediaTransport);
}

static const per_sequence_t MediaChannelCapability_sequence[] = {
  { "mediaTransport"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaTransport },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MediaChannelCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MediaChannelCapability, MediaChannelCapability_sequence);

  return offset;
}
static int dissect_mediaChannelCapabilities_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MediaChannelCapability(tvb, offset, pinfo, tree, hf_h245_mediaChannelCapabilities_item);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability, dissect_mediaChannelCapabilities_item,
                                               1, 256);

  return offset;
}
static int dissect_mediaChannelCapabilities(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_MediaChannelCapability(tvb, offset, pinfo, tree, hf_h245_mediaChannelCapabilities);
}

static const per_sequence_t TransportCapability_sequence[] = {
  { "nonStandard"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandard },
  { "qOSCapabilities"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qOSCapabilities },
  { "mediaChannelCapabilities"    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaChannelCapabilities },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_TransportCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_TransportCapability, TransportCapability_sequence);

  return offset;
}
static int dissect_transportCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TransportCapability(tvb, offset, pinfo, tree, hf_h245_transportCapability);
}



static int
dissect_h245_INTEGER_1_16(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 16U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_numberOfThreads(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_16(tvb, offset, pinfo, tree, hf_h245_numberOfThreads);
}



static int
dissect_h245_INTEGER_0_15(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 15U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_containedThreads_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_15(tvb, offset, pinfo, tree, hf_h245_containedThreads_item);
}
static int dissect_threadNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_15(tvb, offset, pinfo, tree, hf_h245_threadNumber);
}
static int dissect_framesPerSecond(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_15(tvb, offset, pinfo, tree, hf_h245_framesPerSecond);
}
static int dissect_pictureRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_15(tvb, offset, pinfo, tree, hf_h245_pictureRate);
}
static int dissect_skippedFrameCount(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_15(tvb, offset, pinfo, tree, hf_h245_skippedFrameCount);
}


static int
dissect_h245_T_frameSequence(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_T_frameSequence, dissect_frameSequence_item,
                                               1, 256);

  return offset;
}
static int dissect_frameSequence(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_frameSequence(tvb, offset, pinfo, tree, hf_h245_frameSequence);
}

static const per_sequence_t RTPH263VideoRedundancyFrameMapping_sequence[] = {
  { "threadNumber"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_threadNumber },
  { "frameSequence"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_frameSequence },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RTPH263VideoRedundancyFrameMapping(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RTPH263VideoRedundancyFrameMapping, RTPH263VideoRedundancyFrameMapping_sequence);

  return offset;
}
static int dissect_custom_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RTPH263VideoRedundancyFrameMapping(tvb, offset, pinfo, tree, hf_h245_custom_item);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping, dissect_custom_item,
                                               1, 256);

  return offset;
}
static int dissect_custom(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_RTPH263VideoRedundancyFrameMapping(tvb, offset, pinfo, tree, hf_h245_custom);
}


static const value_string h245_T_frameToThreadMapping_vals[] = {
  {   0, "roundrobin" },
  {   1, "custom" },
  { 0, NULL }
};

static const per_choice_t T_frameToThreadMapping_choice[] = {
  {   0, "roundrobin"                  , ASN1_EXTENSION_ROOT    , dissect_roundrobin },
  {   1, "custom"                      , ASN1_EXTENSION_ROOT    , dissect_custom },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_frameToThreadMapping(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_frameToThreadMapping, T_frameToThreadMapping_choice, "T_frameToThreadMapping",
                              NULL);

  return offset;
}
static int dissect_frameToThreadMapping(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_frameToThreadMapping(tvb, offset, pinfo, tree, hf_h245_frameToThreadMapping);
}


static int
dissect_h245_T_containedThreads(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_T_containedThreads, dissect_containedThreads_item,
                                               1, 256);

  return offset;
}
static int dissect_containedThreads(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_containedThreads(tvb, offset, pinfo, tree, hf_h245_containedThreads);
}

static const per_sequence_t RTPH263VideoRedundancyEncoding_sequence[] = {
  { "numberOfThreads"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numberOfThreads },
  { "framesBetweenSyncPoints"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_framesBetweenSyncPoints },
  { "frameToThreadMapping"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_frameToThreadMapping },
  { "containedThreads"            , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_containedThreads },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RTPH263VideoRedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RTPH263VideoRedundancyEncoding, RTPH263VideoRedundancyEncoding_sequence);

  return offset;
}
static int dissect_rtpH263VideoRedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RTPH263VideoRedundancyEncoding(tvb, offset, pinfo, tree, hf_h245_rtpH263VideoRedundancyEncoding);
}


static const value_string h245_RedundancyEncodingMethod_vals[] = {
  {   0, "nonStandard" },
  {   1, "rtpAudioRedundancyEncoding" },
  {   2, "rtpH263VideoRedundancyEncoding" },
  { 0, NULL }
};

static const per_choice_t RedundancyEncodingMethod_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "rtpAudioRedundancyEncoding"  , ASN1_EXTENSION_ROOT    , dissect_rtpAudioRedundancyEncoding },
  {   2, "rtpH263VideoRedundancyEncoding", ASN1_NOT_EXTENSION_ROOT, dissect_rtpH263VideoRedundancyEncoding },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_RedundancyEncodingMethod(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_RedundancyEncodingMethod, RedundancyEncodingMethod_choice, "RedundancyEncodingMethod",
                              NULL);

  return offset;
}
static int dissect_redundancyEncodingMethod(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RedundancyEncodingMethod(tvb, offset, pinfo, tree, hf_h245_redundancyEncodingMethod);
}



static int
dissect_h245_CapabilityTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 65535U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_capabilityTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_capabilityTableEntryNumber);
}
static int dissect_AlternativeCapabilitySet_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_AlternativeCapabilitySet_item);
}
static int dissect_highestEntryNumberProcessed(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_highestEntryNumberProcessed);
}
static int dissect_mediaCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_mediaCapability);
}
static int dissect_primaryEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_primaryEncoding);
}
static int dissect_secondaryEncoding2_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_secondaryEncoding2_item);
}
static int dissect_capabilityTableEntryNumbers_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_capabilityTableEntryNumbers_item);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber, dissect_secondaryEncoding2_item,
                                               1, 256);

  return offset;
}
static int dissect_secondaryEncoding2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_CapabilityTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_secondaryEncoding2);
}

static const per_sequence_t RedundancyEncodingCapability_sequence[] = {
  { "redundancyEncodingMethod"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_redundancyEncodingMethod },
  { "primaryEncoding"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_primaryEncoding },
  { "secondaryEncoding2"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_secondaryEncoding2 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RedundancyEncodingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RedundancyEncodingCapability, RedundancyEncodingCapability_sequence);

  return offset;
}
static int dissect_redundancyEncodingCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RedundancyEncodingCapability(tvb, offset, pinfo, tree, hf_h245_redundancyEncodingCapability_item);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability, dissect_redundancyEncodingCapability_item,
                                               1, 256);

  return offset;
}
static int dissect_redundancyEncodingCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_RedundancyEncodingCapability(tvb, offset, pinfo, tree, hf_h245_redundancyEncodingCapability);
}

static const per_sequence_t H2250Capability_sequence[] = {
  { "maximumAudioDelayJitter"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maximumAudioDelayJitter },
  { "receiveMultipointCapability" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_receiveMultipointCapability },
  { "transmitMultipointCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transmitMultipointCapability },
  { "receiveAndTransmitMultipointCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_receiveAndTransmitMultipointCapability },
  { "mcCapability"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mcCapability },
  { "rtcpVideoControlCapability"  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rtcpVideoControlCapability },
  { "mediaPacketizationCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mediaPacketizationCapability },
  { "transportCapability"         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_transportCapability },
  { "redundancyEncodingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_redundancyEncodingCapability },
  { "logicalChannelSwitchingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_logicalChannelSwitchingCapability },
  { "t120DynamicPortCapability"   , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_t120DynamicPortCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H2250Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H2250Capability, H2250Capability_sequence);

  return offset;
}
static int dissect_h2250Capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H2250Capability(tvb, offset, pinfo, tree, hf_h245_h2250Capability);
}


static const value_string h245_MultiplexCapability_vals[] = {
  {   0, "nonStandard" },
  {   1, "h222Capability" },
  {   2, "h223Capability" },
  {   3, "v76Capability" },
  {   4, "h2250Capability" },
  {   5, "genericMultiplexCapability" },
  { 0, NULL }
};

static const per_choice_t MultiplexCapability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "h222Capability"              , ASN1_EXTENSION_ROOT    , dissect_h222Capability },
  {   2, "h223Capability"              , ASN1_EXTENSION_ROOT    , dissect_h223Capability },
  {   3, "v76Capability"               , ASN1_EXTENSION_ROOT    , dissect_v76Capability },
  {   4, "h2250Capability"             , ASN1_NOT_EXTENSION_ROOT, dissect_h2250Capability },
  {   5, "genericMultiplexCapability"  , ASN1_NOT_EXTENSION_ROOT, dissect_genericMultiplexCapability },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_MultiplexCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_MultiplexCapability, MultiplexCapability_choice, "MultiplexCapability",
                              NULL);

  return offset;
}
static int dissect_multiplexCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexCapability(tvb, offset, pinfo, tree, hf_h245_multiplexCapability);
}



static int
dissect_h245_INTEGER_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 4U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_qcifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4(tvb, offset, pinfo, tree, hf_h245_qcifMPI_1_4);
}
static int dissect_cifMPI_1_4(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_4(tvb, offset, pinfo, tree, hf_h245_cifMPI_1_4);
}

static const per_sequence_t H261VideoCapability_sequence[] = {
  { "qcifMPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qcifMPI_1_4 },
  { "cifMPI"                      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cifMPI_1_4 },
  { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_temporalSpatialTradeOffCapability },
  { "maxBitRate"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxBitRate_1_19200 },
  { "stillImageTransmission"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_stillImageTransmission },
  { "videoBadMBsCap"              , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H261VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H261VideoCapability, H261VideoCapability_sequence);

  return offset;
}
static int dissect_h261VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H261VideoCapability(tvb, offset, pinfo, tree, hf_h245_h261VideoCapability);
}



static int
dissect_h245_INTEGER_0_1073741823(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 1073741823U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_videoBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_1073741823(tvb, offset, pinfo, tree, hf_h245_videoBitRate);
}



static int
dissect_h245_INTEGER_0_262143(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 262143U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_vbvBufferSize(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_262143(tvb, offset, pinfo, tree, hf_h245_vbvBufferSize);
}
static int dissect_additionalDecoderBuffer(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_262143(tvb, offset, pinfo, tree, hf_h245_additionalDecoderBuffer);
}



static int
dissect_h245_INTEGER_0_16383(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 16383U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_samplesPerLine(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16383(tvb, offset, pinfo, tree, hf_h245_samplesPerLine);
}
static int dissect_linesPerFrame(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16383(tvb, offset, pinfo, tree, hf_h245_linesPerFrame);
}

static const per_sequence_t H262VideoCapability_sequence[] = {
  { "profileAndLevel-SPatML"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SPatML },
  { "profileAndLevel-MPatLL"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatLL },
  { "profileAndLevel-MPatML"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatML },
  { "profileAndLevel-MPatH-14"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatH_14 },
  { "profileAndLevel-MPatHL"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_MPatHL },
  { "profileAndLevel-SNRatLL"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatLL },
  { "profileAndLevel-SNRatML"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SNRatML },
  { "profileAndLevel-SpatialatH-14", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_SpatialatH_14 },
  { "profileAndLevel-HPatML"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatML },
  { "profileAndLevel-HPatH-14"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatH_14 },
  { "profileAndLevel-HPatHL"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel_HPatHL },
  { "videoBitRate"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_videoBitRate },
  { "vbvBufferSize"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_vbvBufferSize },
  { "samplesPerLine"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_samplesPerLine },
  { "linesPerFrame"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_linesPerFrame },
  { "framesPerSecond"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_framesPerSecond },
  { "luminanceSampleRate"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_luminanceSampleRate },
  { "videoBadMBsCap"              , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H262VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H262VideoCapability, H262VideoCapability_sequence);

  return offset;
}
static int dissect_h262VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H262VideoCapability(tvb, offset, pinfo, tree, hf_h245_h262VideoCapability);
}



static int
dissect_h245_INTEGER_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 32U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_sqcifMPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32(tvb, offset, pinfo, tree, hf_h245_sqcifMPI_1_32);
}
static int dissect_qcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32(tvb, offset, pinfo, tree, hf_h245_qcifMPI);
}
static int dissect_cifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32(tvb, offset, pinfo, tree, hf_h245_cifMPI);
}
static int dissect_cif4MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32(tvb, offset, pinfo, tree, hf_h245_cif4MPI_1_32);
}
static int dissect_cif16MPI_1_32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_32(tvb, offset, pinfo, tree, hf_h245_cif16MPI_1_32);
}



static int
dissect_h245_INTEGER_1_192400(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 192400U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_maxBitRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_192400(tvb, offset, pinfo, tree, hf_h245_maxBitRate);
}



static int
dissect_h245_INTEGER_0_524287(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 524287U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_hrd_B(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_524287(tvb, offset, pinfo, tree, hf_h245_hrd_B);
}



static int
dissect_h245_INTEGER_1_3600(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 3600U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_slowSqcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_3600(tvb, offset, pinfo, tree, hf_h245_slowSqcifMPI);
}
static int dissect_slowQcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_3600(tvb, offset, pinfo, tree, hf_h245_slowQcifMPI);
}
static int dissect_slowCifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_3600(tvb, offset, pinfo, tree, hf_h245_slowCifMPI);
}
static int dissect_slowCif4MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_3600(tvb, offset, pinfo, tree, hf_h245_slowCif4MPI);
}
static int dissect_slowCif16MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_3600(tvb, offset, pinfo, tree, hf_h245_slowCif16MPI);
}



static int
dissect_h245_INTEGER_M262144_262143(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           -262144, 262143U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_offset_x(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_M262144_262143(tvb, offset, pinfo, tree, hf_h245_offset_x);
}
static int dissect_offset_y(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_M262144_262143(tvb, offset, pinfo, tree, hf_h245_offset_y);
}

static const per_sequence_t TransparencyParameters_sequence[] = {
  { "presentationOrder"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_presentationOrder },
  { "offset-x"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_offset_x },
  { "offset-y"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_offset_y },
  { "scale-x"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_scale_x },
  { "scale-y"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_scale_y },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_TransparencyParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_TransparencyParameters, TransparencyParameters_sequence);

  return offset;
}
static int dissect_transparencyParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TransparencyParameters(tvb, offset, pinfo, tree, hf_h245_transparencyParameters);
}

static const per_sequence_t T_additionalPictureMemory_sequence[] = {
  { "sqcifAdditionalPictureMemory", ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sqcifAdditionalPictureMemory },
  { "qcifAdditionalPictureMemory" , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qcifAdditionalPictureMemory },
  { "cifAdditionalPictureMemory"  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cifAdditionalPictureMemory },
  { "cif4AdditionalPictureMemory" , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif4AdditionalPictureMemory },
  { "cif16AdditionalPictureMemory", ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif16AdditionalPictureMemory },
  { "bigCpfAdditionalPictureMemory", ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_bigCpfAdditionalPictureMemory },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_additionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_additionalPictureMemory, T_additionalPictureMemory_sequence);

  return offset;
}
static int dissect_additionalPictureMemory(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_additionalPictureMemory(tvb, offset, pinfo, tree, hf_h245_additionalPictureMemory);
}


static const value_string h245_T_videoBackChannelSend_vals[] = {
  {   0, "none" },
  {   1, "ackMessageOnly" },
  {   2, "nackMessageOnly" },
  {   3, "ackOrNackMessageOnly" },
  {   4, "ackAndNackMessage" },
  { 0, NULL }
};

static const per_choice_t T_videoBackChannelSend_choice[] = {
  {   0, "none"                        , ASN1_EXTENSION_ROOT    , dissect_none },
  {   1, "ackMessageOnly"              , ASN1_EXTENSION_ROOT    , dissect_ackMessageOnly },
  {   2, "nackMessageOnly"             , ASN1_EXTENSION_ROOT    , dissect_nackMessageOnly },
  {   3, "ackOrNackMessageOnly"        , ASN1_EXTENSION_ROOT    , dissect_ackOrNackMessageOnly },
  {   4, "ackAndNackMessage"           , ASN1_EXTENSION_ROOT    , dissect_ackAndNackMessage },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_videoBackChannelSend(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_videoBackChannelSend, T_videoBackChannelSend_choice, "T_videoBackChannelSend",
                              NULL);

  return offset;
}
static int dissect_videoBackChannelSend(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_videoBackChannelSend(tvb, offset, pinfo, tree, hf_h245_videoBackChannelSend);
}



static int
dissect_h245_INTEGER_1_128(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 128U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_mpuHorizMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_128(tvb, offset, pinfo, tree, hf_h245_mpuHorizMBs);
}



static int
dissect_h245_INTEGER_1_72(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 72U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_mpuVertMBs(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_72(tvb, offset, pinfo, tree, hf_h245_mpuVertMBs);
}

static const per_sequence_t T_subPictureRemovalParameters_sequence[] = {
  { "mpuHorizMBs"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mpuHorizMBs },
  { "mpuVertMBs"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mpuVertMBs },
  { "mpuTotalNumber"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mpuTotalNumber },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_subPictureRemovalParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_subPictureRemovalParameters, T_subPictureRemovalParameters_sequence);

  return offset;
}
static int dissect_subPictureRemovalParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_subPictureRemovalParameters(tvb, offset, pinfo, tree, hf_h245_subPictureRemovalParameters);
}

static const per_sequence_t T_enhancedReferencePicSelect_sequence[] = {
  { "subPictureRemovalParameters" , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_subPictureRemovalParameters },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_enhancedReferencePicSelect(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_enhancedReferencePicSelect, T_enhancedReferencePicSelect_sequence);

  return offset;
}
static int dissect_enhancedReferencePicSelect(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_enhancedReferencePicSelect(tvb, offset, pinfo, tree, hf_h245_enhancedReferencePicSelect);
}

static const per_sequence_t RefPictureSelection_sequence[] = {
  { "additionalPictureMemory"     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_additionalPictureMemory },
  { "videoMux"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoMux },
  { "videoBackChannelSend"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoBackChannelSend },
  { "enhancedReferencePicSelect"  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_enhancedReferencePicSelect },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RefPictureSelection(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RefPictureSelection, RefPictureSelection_sequence);

  return offset;
}
static int dissect_refPictureSelection(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RefPictureSelection(tvb, offset, pinfo, tree, hf_h245_refPictureSelection);
}



static int
dissect_h245_INTEGER_1000_1001(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1000U, 1001U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_clockConversionCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1000_1001(tvb, offset, pinfo, tree, hf_h245_clockConversionCode);
}



static int
dissect_h245_INTEGER_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 2048U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_sqcifMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_sqcifMPI);
}
static int dissect_qcifMPI_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_qcifMPI_1_2048);
}
static int dissect_cifMPI2_1_2048(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_cifMPI2_1_2048);
}
static int dissect_cif4MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_cif4MPI);
}
static int dissect_cif16MPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_cif16MPI);
}
static int dissect_maxCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_maxCustomPictureWidth);
}
static int dissect_maxCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_maxCustomPictureHeight);
}
static int dissect_minCustomPictureWidth(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_minCustomPictureWidth);
}
static int dissect_minCustomPictureHeight(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_minCustomPictureHeight);
}
static int dissect_customMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_2048(tvb, offset, pinfo, tree, hf_h245_customMPI);
}

static const per_sequence_t CustomPictureClockFrequency_sequence[] = {
  { "clockConversionCode"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_clockConversionCode },
  { "clockDivisor"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_clockDivisor },
  { "sqcifMPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sqcifMPI },
  { "qcifMPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qcifMPI_1_2048 },
  { "cifMPI"                      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cifMPI2_1_2048 },
  { "cif4MPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif4MPI },
  { "cif16MPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif16MPI },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_CustomPictureClockFrequency(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_CustomPictureClockFrequency, CustomPictureClockFrequency_sequence);

  return offset;
}
static int dissect_customPictureClockFrequency_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CustomPictureClockFrequency(tvb, offset, pinfo, tree, hf_h245_customPictureClockFrequency_item);
}


static int
dissect_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency, dissect_customPictureClockFrequency_item,
                                          1, 16);

  return offset;
}
static int dissect_customPictureClockFrequency(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_16_OF_CustomPictureClockFrequency(tvb, offset, pinfo, tree, hf_h245_customPictureClockFrequency);
}



static int
dissect_h245_INTEGER_1_31(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 31U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_standardMPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_31(tvb, offset, pinfo, tree, hf_h245_standardMPI);
}

static const per_sequence_t T_customPCF_item_sequence[] = {
  { "clockConversionCode"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_clockConversionCode },
  { "clockDivisor"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_clockDivisor },
  { "customMPI"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_customMPI },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_customPCF_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_customPCF_item, T_customPCF_item_sequence);

  return offset;
}
static int dissect_customPCF_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_customPCF_item(tvb, offset, pinfo, tree, hf_h245_customPCF_item);
}


static int
dissect_h245_T_customPCF(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_T_customPCF, dissect_customPCF_item,
                                          1, 16);

  return offset;
}
static int dissect_customPCF(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_customPCF(tvb, offset, pinfo, tree, hf_h245_customPCF);
}

static const per_sequence_t T_mPI_sequence[] = {
  { "standardMPI"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_standardMPI },
  { "customPCF"                   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_customPCF },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_mPI(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_mPI, T_mPI_sequence);

  return offset;
}
static int dissect_mPI(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mPI(tvb, offset, pinfo, tree, hf_h245_mPI);
}



static int
dissect_h245_INTEGER_1_14(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 14U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_pixelAspectCode_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_14(tvb, offset, pinfo, tree, hf_h245_pixelAspectCode_item);
}


static int
dissect_h245_T_pixelAspectCode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_T_pixelAspectCode, dissect_pixelAspectCode_item,
                                          1, 14);

  return offset;
}
static int dissect_pixelAspectCode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_pixelAspectCode(tvb, offset, pinfo, tree, hf_h245_pixelAspectCode);
}

static const per_sequence_t T_extendedPAR_item_sequence[] = {
  { "width"                       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_width },
  { "height"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_height },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_extendedPAR_item(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_extendedPAR_item, T_extendedPAR_item_sequence);

  return offset;
}
static int dissect_extendedPAR_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_extendedPAR_item(tvb, offset, pinfo, tree, hf_h245_extendedPAR_item);
}


static int
dissect_h245_T_extendedPAR(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_T_extendedPAR, dissect_extendedPAR_item,
                                          1, 256);

  return offset;
}
static int dissect_extendedPAR(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_extendedPAR(tvb, offset, pinfo, tree, hf_h245_extendedPAR);
}


static const value_string h245_T_pixelAspectInformation_vals[] = {
  {   0, "anyPixelAspectRatio" },
  {   1, "pixelAspectCode" },
  {   2, "extendedPAR" },
  { 0, NULL }
};

static const per_choice_t T_pixelAspectInformation_choice[] = {
  {   0, "anyPixelAspectRatio"         , ASN1_EXTENSION_ROOT    , dissect_anyPixelAspectRatio },
  {   1, "pixelAspectCode"             , ASN1_EXTENSION_ROOT    , dissect_pixelAspectCode },
  {   2, "extendedPAR"                 , ASN1_EXTENSION_ROOT    , dissect_extendedPAR },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_pixelAspectInformation(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_pixelAspectInformation, T_pixelAspectInformation_choice, "T_pixelAspectInformation",
                              NULL);

  return offset;
}
static int dissect_pixelAspectInformation(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_pixelAspectInformation(tvb, offset, pinfo, tree, hf_h245_pixelAspectInformation);
}

static const per_sequence_t CustomPictureFormat_sequence[] = {
  { "maxCustomPictureWidth"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxCustomPictureWidth },
  { "maxCustomPictureHeight"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxCustomPictureHeight },
  { "minCustomPictureWidth"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_minCustomPictureWidth },
  { "minCustomPictureHeight"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_minCustomPictureHeight },
  { "mPI"                         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mPI },
  { "pixelAspectInformation"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_pixelAspectInformation },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_CustomPictureFormat(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_CustomPictureFormat, CustomPictureFormat_sequence);

  return offset;
}
static int dissect_customPictureFormat_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CustomPictureFormat(tvb, offset, pinfo, tree, hf_h245_customPictureFormat_item);
}


static int
dissect_h245_SET_SIZE_1_16_OF_CustomPictureFormat(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_16_OF_CustomPictureFormat, dissect_customPictureFormat_item,
                                          1, 16);

  return offset;
}
static int dissect_customPictureFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_16_OF_CustomPictureFormat(tvb, offset, pinfo, tree, hf_h245_customPictureFormat);
}

static const per_sequence_t H263Version3Options_sequence[] = {
  { "dataPartitionedSlices"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataPartitionedSlices },
  { "fixedPointIDCT0"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fixedPointIDCT0 },
  { "interlacedFields"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_interlacedFields },
  { "currentPictureHeaderRepetition", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_currentPictureHeaderRepetition },
  { "previousPictureHeaderRepetition", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_previousPictureHeaderRepetition },
  { "nextPictureHeaderRepetition" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_nextPictureHeaderRepetition },
  { "pictureNumber"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_pictureNumberBoolean },
  { "spareReferencePictures"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_spareReferencePictures },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263Version3Options(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263Version3Options, H263Version3Options_sequence);

  return offset;
}
static int dissect_h263Version3Options(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263Version3Options(tvb, offset, pinfo, tree, hf_h245_h263Version3Options);
}

static const per_sequence_t H263ModeComboFlags_sequence[] = {
  { "unrestrictedVector"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unrestrictedVector },
  { "arithmeticCoding"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arithmeticCoding },
  { "advancedPrediction"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_advancedPrediction },
  { "pbFrames"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_pbFrames },
  { "advancedIntraCodingMode"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_advancedIntraCodingMode },
  { "deblockingFilterMode"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_deblockingFilterMode },
  { "unlimitedMotionVectors"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unlimitedMotionVectors },
  { "slicesInOrder-NonRect"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesInOrder_NonRect },
  { "slicesInOrder-Rect"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesInOrder_Rect },
  { "slicesNoOrder-NonRect"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesNoOrder_NonRect },
  { "slicesNoOrder-Rect"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesNoOrder_Rect },
  { "improvedPBFramesMode"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_improvedPBFramesMode },
  { "referencePicSelect"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_referencePicSelect },
  { "dynamicPictureResizingByFour", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicPictureResizingByFour },
  { "dynamicPictureResizingSixteenthPel", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicPictureResizingSixteenthPel },
  { "dynamicWarpingHalfPel"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicWarpingHalfPel },
  { "dynamicWarpingSixteenthPel"  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicWarpingSixteenthPel },
  { "reducedResolutionUpdate"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_reducedResolutionUpdate },
  { "independentSegmentDecoding"  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_independentSegmentDecoding },
  { "alternateInterVLCMode"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alternateInterVLCMode },
  { "modifiedQuantizationMode"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_modifiedQuantizationMode },
  { "enhancedReferencePicSelect"  , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_enhancedReferencePicSelectBool },
  { "h263Version3Options"         , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h263Version3Options },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263ModeComboFlags(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263ModeComboFlags, H263ModeComboFlags_sequence);

  return offset;
}
static int dissect_h263VideoUncoupledModes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263ModeComboFlags(tvb, offset, pinfo, tree, hf_h245_h263VideoUncoupledModes);
}
static int dissect_h263VideoCoupledModes_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263ModeComboFlags(tvb, offset, pinfo, tree, hf_h245_h263VideoCoupledModes_item);
}


static int
dissect_h245_SET_SIZE_1_16_OF_H263ModeComboFlags(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_16_OF_H263ModeComboFlags, dissect_h263VideoCoupledModes_item,
                                          1, 16);

  return offset;
}
static int dissect_h263VideoCoupledModes(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_16_OF_H263ModeComboFlags(tvb, offset, pinfo, tree, hf_h245_h263VideoCoupledModes);
}

static const per_sequence_t H263VideoModeCombos_sequence[] = {
  { "h263VideoUncoupledModes"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h263VideoUncoupledModes },
  { "h263VideoCoupledModes"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h263VideoCoupledModes },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263VideoModeCombos(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263VideoModeCombos, H263VideoModeCombos_sequence);

  return offset;
}
static int dissect_modeCombos_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263VideoModeCombos(tvb, offset, pinfo, tree, hf_h245_modeCombos_item);
}


static int
dissect_h245_SET_SIZE_1_16_OF_H263VideoModeCombos(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_16_OF_H263VideoModeCombos, dissect_modeCombos_item,
                                          1, 16);

  return offset;
}
static int dissect_modeCombos(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_16_OF_H263VideoModeCombos(tvb, offset, pinfo, tree, hf_h245_modeCombos);
}

static const per_sequence_t H263Options_sequence[] = {
  { "advancedIntraCodingMode"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_advancedIntraCodingMode },
  { "deblockingFilterMode"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_deblockingFilterMode },
  { "improvedPBFramesMode"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_improvedPBFramesMode },
  { "unlimitedMotionVectors"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unlimitedMotionVectors },
  { "fullPictureFreeze"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fullPictureFreeze },
  { "partialPictureFreezeAndRelease", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_partialPictureFreezeAndRelease },
  { "resizingPartPicFreezeAndRelease", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_resizingPartPicFreezeAndRelease },
  { "fullPictureSnapshot"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fullPictureSnapshot },
  { "partialPictureSnapshot"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_partialPictureSnapshot },
  { "videoSegmentTagging"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoSegmentTagging },
  { "progressiveRefinement"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_progressiveRefinement },
  { "dynamicPictureResizingByFour", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicPictureResizingByFour },
  { "dynamicPictureResizingSixteenthPel", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicPictureResizingSixteenthPel },
  { "dynamicWarpingHalfPel"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicWarpingHalfPel },
  { "dynamicWarpingSixteenthPel"  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicWarpingSixteenthPel },
  { "independentSegmentDecoding"  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_independentSegmentDecoding },
  { "slicesInOrder-NonRect"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesInOrder_NonRect },
  { "slicesInOrder-Rect"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesInOrder_Rect },
  { "slicesNoOrder-NonRect"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesNoOrder_NonRect },
  { "slicesNoOrder-Rect"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_slicesNoOrder_Rect },
  { "alternateInterVLCMode"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alternateInterVLCMode },
  { "modifiedQuantizationMode"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_modifiedQuantizationMode },
  { "reducedResolutionUpdate"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_reducedResolutionUpdate },
  { "transparencyParameters"      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_transparencyParameters },
  { "separateVideoBackChannel"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_separateVideoBackChannel },
  { "refPictureSelection"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_refPictureSelection },
  { "customPictureClockFrequency" , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_customPictureClockFrequency },
  { "customPictureFormat"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_customPictureFormat },
  { "modeCombos"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_modeCombos },
  { "videoBadMBsCap"              , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap },
  { "h263Version3Options"         , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_h263Version3Options },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263Options(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263Options, H263Options_sequence);

  return offset;
}
static int dissect_h263Options(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263Options(tvb, offset, pinfo, tree, hf_h245_h263Options);
}

static const per_sequence_t EnhancementOptions_sequence[] = {
  { "sqcifMPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sqcifMPI_1_32 },
  { "qcifMPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qcifMPI },
  { "cifMPI"                      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cifMPI },
  { "cif4MPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif4MPI_1_32 },
  { "cif16MPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif16MPI_1_32 },
  { "maxBitRate"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxBitRate },
  { "unrestrictedVector"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unrestrictedVector },
  { "arithmeticCoding"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arithmeticCoding },
  { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_temporalSpatialTradeOffCapability },
  { "slowSqcifMPI"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_slowSqcifMPI },
  { "slowQcifMPI"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_slowQcifMPI },
  { "slowCifMPI"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_slowCifMPI },
  { "slowCif4MPI"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_slowCif4MPI },
  { "slowCif16MPI"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_slowCif16MPI },
  { "errorCompensation"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_errorCompensation },
  { "h263Options"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h263Options },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_EnhancementOptions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_EnhancementOptions, EnhancementOptions_sequence);

  return offset;
}
static int dissect_snrEnhancement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EnhancementOptions(tvb, offset, pinfo, tree, hf_h245_snrEnhancement_item);
}
static int dissect_spatialEnhancement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EnhancementOptions(tvb, offset, pinfo, tree, hf_h245_spatialEnhancement_item);
}
static int dissect_enhancementOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EnhancementOptions(tvb, offset, pinfo, tree, hf_h245_enhancementOptions);
}


static int
dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_14_OF_EnhancementOptions, dissect_snrEnhancement_item,
                                          1, 14);

  return offset;
}
static int dissect_snrEnhancement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions(tvb, offset, pinfo, tree, hf_h245_snrEnhancement);
}
static int dissect_spatialEnhancement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_14_OF_EnhancementOptions(tvb, offset, pinfo, tree, hf_h245_spatialEnhancement);
}



static int
dissect_h245_INTEGER_1_64(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 64U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_numberOfBPictures(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_64(tvb, offset, pinfo, tree, hf_h245_numberOfBPictures);
}

static const per_sequence_t BEnhancementParameters_sequence[] = {
  { "enhancementOptions"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_enhancementOptions },
  { "numberOfBPictures"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numberOfBPictures },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_BEnhancementParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_BEnhancementParameters, BEnhancementParameters_sequence);

  return offset;
}
static int dissect_bPictureEnhancement_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BEnhancementParameters(tvb, offset, pinfo, tree, hf_h245_bPictureEnhancement_item);
}


static int
dissect_h245_SET_SIZE_1_14_OF_BEnhancementParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_14_OF_BEnhancementParameters, dissect_bPictureEnhancement_item,
                                          1, 14);

  return offset;
}
static int dissect_bPictureEnhancement(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_14_OF_BEnhancementParameters(tvb, offset, pinfo, tree, hf_h245_bPictureEnhancement);
}

static const per_sequence_t EnhancementLayerInfo_sequence[] = {
  { "baseBitRateConstrained"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_baseBitRateConstrained },
  { "snrEnhancement"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_snrEnhancement },
  { "spatialEnhancement"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_spatialEnhancement },
  { "bPictureEnhancement"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_bPictureEnhancement },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_EnhancementLayerInfo(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_EnhancementLayerInfo, EnhancementLayerInfo_sequence);

  return offset;
}
static int dissect_enhancementLayerInfo(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EnhancementLayerInfo(tvb, offset, pinfo, tree, hf_h245_enhancementLayerInfo);
}

static const per_sequence_t H263VideoCapability_sequence[] = {
  { "sqcifMPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_sqcifMPI_1_32 },
  { "qcifMPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_qcifMPI },
  { "cifMPI"                      , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cifMPI },
  { "cif4MPI"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif4MPI_1_32 },
  { "cif16MPI"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_cif16MPI_1_32 },
  { "maxBitRate"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxBitRate },
  { "unrestrictedVector"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unrestrictedVector },
  { "arithmeticCoding"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arithmeticCoding },
  { "advancedPrediction"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_advancedPrediction },
  { "pbFrames"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_pbFrames },
  { "temporalSpatialTradeOffCapability", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_temporalSpatialTradeOffCapability },
  { "hrd-B"                       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_hrd_B },
  { "bppMaxKb"                    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_bppMaxKb },
  { "slowSqcifMPI"                , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_slowSqcifMPI },
  { "slowQcifMPI"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_slowQcifMPI },
  { "slowCifMPI"                  , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_slowCifMPI },
  { "slowCif4MPI"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_slowCif4MPI },
  { "slowCif16MPI"                , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_slowCif16MPI },
  { "errorCompensation"           , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_errorCompensation },
  { "enhancementLayerInfo"        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_enhancementLayerInfo },
  { "h263Options"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h263Options },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263VideoCapability, H263VideoCapability_sequence);

  return offset;
}
static int dissect_h263VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263VideoCapability(tvb, offset, pinfo, tree, hf_h245_h263VideoCapability);
}

static const per_sequence_t IS11172VideoCapability_sequence[] = {
  { "constrainedBitstream"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_constrainedBitstream },
  { "videoBitRate"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_videoBitRate },
  { "vbvBufferSize"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_vbvBufferSize },
  { "samplesPerLine"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_samplesPerLine },
  { "linesPerFrame"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_linesPerFrame },
  { "pictureRate"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_pictureRate },
  { "luminanceSampleRate"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_luminanceSampleRate },
  { "videoBadMBsCap"              , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoBadMBsCap },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_IS11172VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_IS11172VideoCapability, IS11172VideoCapability_sequence);

  return offset;
}
static int dissect_is11172VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IS11172VideoCapability(tvb, offset, pinfo, tree, hf_h245_is11172VideoCapability);
}


static int
dissect_h245_SEQUENCE_OF_VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_VideoCapability, dissect_videoCapability_item);

  return offset;
}
static int dissect_videoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_VideoCapability(tvb, offset, pinfo, tree, hf_h245_videoCapability);
}


static int
dissect_h245_SEQUENCE_OF_GenericCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_GenericCapability, dissect_videoCapabilityExtension_item);

  return offset;
}
static int dissect_videoCapabilityExtension(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_GenericCapability(tvb, offset, pinfo, tree, hf_h245_videoCapabilityExtension);
}

static const per_sequence_t ExtendedVideoCapability_sequence[] = {
  { "videoCapability"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_videoCapability },
  { "videoCapabilityExtension"    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_videoCapabilityExtension },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_ExtendedVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_ExtendedVideoCapability, ExtendedVideoCapability_sequence);

  return offset;
}
static int dissect_extendedVideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ExtendedVideoCapability(tvb, offset, pinfo, tree, hf_h245_extendedVideoCapability);
}


static const value_string h245_VideoCapability_vals[] = {
  {   0, "nonStandard" },
  {   1, "h261VideoCapability" },
  {   2, "h262VideoCapability" },
  {   3, "h263VideoCapability" },
  {   4, "is11172VideoCapability" },
  {   5, "genericVideoCapability" },
  {   6, "extendedVideoCapability" },
  { 0, NULL }
};

static const per_choice_t VideoCapability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "h261VideoCapability"         , ASN1_EXTENSION_ROOT    , dissect_h261VideoCapability },
  {   2, "h262VideoCapability"         , ASN1_EXTENSION_ROOT    , dissect_h262VideoCapability },
  {   3, "h263VideoCapability"         , ASN1_EXTENSION_ROOT    , dissect_h263VideoCapability },
  {   4, "is11172VideoCapability"      , ASN1_EXTENSION_ROOT    , dissect_is11172VideoCapability },
  {   5, "genericVideoCapability"      , ASN1_NOT_EXTENSION_ROOT, dissect_genericVideoCapability },
  {   6, "extendedVideoCapability"     , ASN1_NOT_EXTENSION_ROOT, dissect_extendedVideoCapability },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_VideoCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  guint32 value;

  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_VideoCapability, VideoCapability_choice, "VideoCapability",
                              &value);

        codec_type = val_to_str(value, h245_VideoCapability_vals, "<unknown>");
            if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%s %s", h245_pi->frame_label, codec_type);


  return offset;
}

static const per_sequence_t T_g7231_sequence[] = {
  { "maxAl-sduAudioFrames"        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_maxAl_sduAudioFrames },
  { "silenceSuppression"          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_silenceSuppression },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_g7231(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_g7231, T_g7231_sequence);

  return offset;
}
static int dissect_g7231(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_g7231(tvb, offset, pinfo, tree, hf_h245_g7231);
}



static int
dissect_h245_INTEGER_1_448(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 448U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_bitRate_1_448(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_448(tvb, offset, pinfo, tree, hf_h245_bitRate_1_448);
}

static const per_sequence_t IS11172AudioCapability_sequence[] = {
  { "audioLayer1"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer1 },
  { "audioLayer2"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer2 },
  { "audioLayer3"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer3 },
  { "audioSampling32k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling32k },
  { "audioSampling44k1"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling44k1 },
  { "audioSampling48k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling48k },
  { "singleChannel"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_singleChannel },
  { "twoChannels"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_twoChannels },
  { "bitRate"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_bitRate_1_448 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_IS11172AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_IS11172AudioCapability, IS11172AudioCapability_sequence);

  return offset;
}
static int dissect_is11172AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IS11172AudioCapability(tvb, offset, pinfo, tree, hf_h245_is11172AudioCapability);
}



static int
dissect_h245_INTEGER_1_1130(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 1130U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_bitRate2_1_1130(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_1_1130(tvb, offset, pinfo, tree, hf_h245_bitRate2_1_1130);
}

static const per_sequence_t IS13818AudioCapability_sequence[] = {
  { "audioLayer1"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer1 },
  { "audioLayer2"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer2 },
  { "audioLayer3"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioLayer3 },
  { "audioSampling16k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling16k },
  { "audioSampling22k05"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling22k05 },
  { "audioSampling24k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling24k },
  { "audioSampling32k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling32k },
  { "audioSampling44k1"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling44k1 },
  { "audioSampling48k"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioSampling48k },
  { "singleChannel"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_singleChannel },
  { "twoChannels"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_twoChannels },
  { "threeChannels2-1"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_threeChannels2_1 },
  { "threeChannels3-0"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_threeChannels3_0 },
  { "fourChannels2-0-2-0"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fourChannels2_0_2_0 },
  { "fourChannels2-2"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fourChannels2_2 },
  { "fourChannels3-1"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fourChannels3_1 },
  { "fiveChannels3-0-2-0"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fiveChannels3_0_2_0 },
  { "fiveChannels3-2"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fiveChannels3_2 },
  { "lowFrequencyEnhancement"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lowFrequencyEnhancement },
  { "multilingual"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multilingual },
  { "bitRate"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_bitRate2_1_1130 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_IS13818AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_IS13818AudioCapability, IS13818AudioCapability_sequence);

  return offset;
}
static int dissect_is13818AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IS13818AudioCapability(tvb, offset, pinfo, tree, hf_h245_is13818AudioCapability);
}



static int
dissect_h245_INTEGER_27_78(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           27U, 78U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_highRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_27_78(tvb, offset, pinfo, tree, hf_h245_highRateMode0);
}
static int dissect_highRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_27_78(tvb, offset, pinfo, tree, hf_h245_highRateMode1);
}



static int
dissect_h245_INTEGER_23_66(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           23U, 66U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_lowRateMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_23_66(tvb, offset, pinfo, tree, hf_h245_lowRateMode0);
}
static int dissect_lowRateMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_23_66(tvb, offset, pinfo, tree, hf_h245_lowRateMode1);
}



static int
dissect_h245_INTEGER_6_17(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           6U, 17U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_sidMode0(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_6_17(tvb, offset, pinfo, tree, hf_h245_sidMode0);
}
static int dissect_sidMode1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_6_17(tvb, offset, pinfo, tree, hf_h245_sidMode1);
}

static const per_sequence_t G723AnnexCAudioMode_sequence[] = {
  { "highRateMode0"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_highRateMode0 },
  { "highRateMode1"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_highRateMode1 },
  { "lowRateMode0"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lowRateMode0 },
  { "lowRateMode1"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_lowRateMode1 },
  { "sidMode0"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sidMode0 },
  { "sidMode1"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sidMode1 },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_G723AnnexCAudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_G723AnnexCAudioMode, G723AnnexCAudioMode_sequence);

  return offset;
}
static int dissect_g723AnnexCAudioMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_G723AnnexCAudioMode(tvb, offset, pinfo, tree, hf_h245_g723AnnexCAudioMode);
}

static const per_sequence_t G7231AnnexCCapability_sequence[] = {
  { "maxAl-sduAudioFrames"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_maxAl_sduAudioFrames },
  { "silenceSuppression"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_silenceSuppression },
  { "g723AnnexCAudioMode"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_g723AnnexCAudioMode },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_G7231AnnexCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_G7231AnnexCCapability, G7231AnnexCCapability_sequence);

  return offset;
}
static int dissect_g7231AnnexCCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_G7231AnnexCCapability(tvb, offset, pinfo, tree, hf_h245_g7231AnnexCCapability);
}

static const per_sequence_t GSMAudioCapability_sequence[] = {
  { "audioUnitSize"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioUnitSize },
  { "comfortNoise"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_comfortNoise },
  { "scrambled"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_scrambled },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_GSMAudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_GSMAudioCapability, GSMAudioCapability_sequence);

  return offset;
}
static int dissect_gsmFullRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GSMAudioCapability(tvb, offset, pinfo, tree, hf_h245_gsmFullRate);
}
static int dissect_gsmHalfRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GSMAudioCapability(tvb, offset, pinfo, tree, hf_h245_gsmHalfRate);
}
static int dissect_gsmEnhancedFullRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GSMAudioCapability(tvb, offset, pinfo, tree, hf_h245_gsmEnhancedFullRate);
}

static const per_sequence_t G729Extensions_sequence[] = {
  { "audioUnit"                   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_audioUnit },
  { "annexA"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexA },
  { "annexB"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexB },
  { "annexD"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexD },
  { "annexE"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexE },
  { "annexF"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexF },
  { "annexG"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexG },
  { "annexH"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_annexH },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_G729Extensions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_G729Extensions, G729Extensions_sequence);

  return offset;
}
static int dissect_g729Extensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_G729Extensions(tvb, offset, pinfo, tree, hf_h245_g729Extensions);
}

static const per_sequence_t VBDCapability_sequence[] = {
  { "type"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_vbd_cap_type },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_VBDCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_VBDCapability, VBDCapability_sequence);

  return offset;
}
static int dissect_vbd(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VBDCapability(tvb, offset, pinfo, tree, hf_h245_vbd);
}


static int
dissect_h245_GeneralString(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_GeneralString(tvb, offset, pinfo, tree, hf_index);

  return offset;
}
static int dissect_audioTelephoneEvent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GeneralString(tvb, offset, pinfo, tree, hf_h245_audioTelephoneEvent);
}
static int dissect_alphanumeric(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_GeneralString(tvb, offset, pinfo, tree, hf_h245_alphanumeric);
}

static const per_sequence_t NoPTAudioTelephonyEventCapability_sequence[] = {
  { "audioTelephoneEvent"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioTelephoneEvent },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_NoPTAudioTelephonyEventCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_NoPTAudioTelephonyEventCapability, NoPTAudioTelephonyEventCapability_sequence);

  return offset;
}
static int dissect_audioTelephonyEvent(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NoPTAudioTelephonyEventCapability(tvb, offset, pinfo, tree, hf_h245_audioTelephonyEvent);
}

static const per_sequence_t NoPTAudioToneCapability_sequence[] = {
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_NoPTAudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_NoPTAudioToneCapability, NoPTAudioToneCapability_sequence);

  return offset;
}
static int dissect_audioTone(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NoPTAudioToneCapability(tvb, offset, pinfo, tree, hf_h245_audioTone);
}


static const value_string h245_AudioCapability_vals[] = {
  {   0, "nonStandard" },
  {   1, "g711Alaw64k" },
  {   2, "g711Alaw56k" },
  {   3, "g711Ulaw64k" },
  {   4, "g711Ulaw56k" },
  {   5, "g722-64k" },
  {   6, "g722-56k" },
  {   7, "g722-48k" },
  {   8, "g7231" },
  {   9, "g728" },
  {  10, "g729" },
  {  11, "g729AnnexA" },
  {  12, "is11172AudioCapability" },
  {  13, "is13818AudioCapability" },
  {  14, "g729wAnnexB" },
  {  15, "g729AnnexAwAnnexB" },
  {  16, "g7231AnnexCCapability" },
  {  17, "gsmFullRate" },
  {  18, "gsmHalfRate" },
  {  19, "gsmEnhancedFullRate" },
  {  20, "genericAudioCapability" },
  {  21, "g729Extensions" },
  {  22, "vbd" },
  {  23, "audioTelephonyEvent" },
  {  24, "audioTone" },
  { 0, NULL }
};

static const per_choice_t AudioCapability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "g711Alaw64k"                 , ASN1_EXTENSION_ROOT    , dissect_g711Alaw64k },
  {   2, "g711Alaw56k"                 , ASN1_EXTENSION_ROOT    , dissect_g711Alaw56k },
  {   3, "g711Ulaw64k"                 , ASN1_EXTENSION_ROOT    , dissect_g711Ulaw64k },
  {   4, "g711Ulaw56k"                 , ASN1_EXTENSION_ROOT    , dissect_g711Ulaw56k },
  {   5, "g722-64k"                    , ASN1_EXTENSION_ROOT    , dissect_g722_64k },
  {   6, "g722-56k"                    , ASN1_EXTENSION_ROOT    , dissect_g722_56k },
  {   7, "g722-48k"                    , ASN1_EXTENSION_ROOT    , dissect_g722_48k },
  {   8, "g7231"                       , ASN1_EXTENSION_ROOT    , dissect_g7231 },
  {   9, "g728"                        , ASN1_EXTENSION_ROOT    , dissect_g728 },
  {  10, "g729"                        , ASN1_EXTENSION_ROOT    , dissect_g729 },
  {  11, "g729AnnexA"                  , ASN1_EXTENSION_ROOT    , dissect_g729AnnexA },
  {  12, "is11172AudioCapability"      , ASN1_EXTENSION_ROOT    , dissect_is11172AudioCapability },
  {  13, "is13818AudioCapability"      , ASN1_EXTENSION_ROOT    , dissect_is13818AudioCapability },
  {  14, "g729wAnnexB"                 , ASN1_NOT_EXTENSION_ROOT, dissect_g729wAnnexB },
  {  15, "g729AnnexAwAnnexB"           , ASN1_NOT_EXTENSION_ROOT, dissect_g729AnnexAwAnnexB },
  {  16, "g7231AnnexCCapability"       , ASN1_NOT_EXTENSION_ROOT, dissect_g7231AnnexCCapability },
  {  17, "gsmFullRate"                 , ASN1_NOT_EXTENSION_ROOT, dissect_gsmFullRate },
  {  18, "gsmHalfRate"                 , ASN1_NOT_EXTENSION_ROOT, dissect_gsmHalfRate },
  {  19, "gsmEnhancedFullRate"         , ASN1_NOT_EXTENSION_ROOT, dissect_gsmEnhancedFullRate },
  {  20, "genericAudioCapability"      , ASN1_NOT_EXTENSION_ROOT, dissect_genericAudioCapability },
  {  21, "g729Extensions"              , ASN1_NOT_EXTENSION_ROOT, dissect_g729Extensions },
  {  22, "vbd"                         , ASN1_NOT_EXTENSION_ROOT, dissect_vbd },
  {  23, "audioTelephonyEvent"         , ASN1_NOT_EXTENSION_ROOT, dissect_audioTelephonyEvent },
  {  24, "audioTone"                   , ASN1_NOT_EXTENSION_ROOT, dissect_audioTone },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_AudioCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  guint32 value;

  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_AudioCapability, AudioCapability_choice, "AudioCapability",
                              &value);

        codec_type = val_to_str(value, h245_AudioCapability_short_vals, "<unknown>");
            if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%s %s", h245_pi->frame_label, val_to_str(value, h245_AudioCapability_short_vals, "ukn"));


  return offset;
}

static const per_sequence_t T_h233EncryptionReceiveCapability_sequence[] = {
  { "h233IVResponseTime"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h233IVResponseTime },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_h233EncryptionReceiveCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_h233EncryptionReceiveCapability, T_h233EncryptionReceiveCapability_sequence);

  return offset;
}
static int dissect_h233EncryptionReceiveCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_h233EncryptionReceiveCapability(tvb, offset, pinfo, tree, hf_h245_h233EncryptionReceiveCapability);
}


static int
dissect_h245_SEQUENCE_OF_NonStandardParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_NonStandardParameter, dissect_nonStandardData_item);

  return offset;
}
static int dissect_nonStandardParams(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_nonStandardParams);
}

static const per_sequence_t ConferenceCapability_sequence[] = {
  { "nonStandardData"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandardParams },
  { "chairControlCapability"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_chairControlCapability },
  { "videoIndicateMixingCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_videoIndicateMixingCapability },
  { "multipointVisualizationCapability", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_multipointVisualizationCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_ConferenceCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_ConferenceCapability, ConferenceCapability_sequence);

  return offset;
}
static int dissect_conferenceCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ConferenceCapability(tvb, offset, pinfo, tree, hf_h245_conferenceCapability);
}


static const value_string h245_MediaEncryptionAlgorithm_vals[] = {
  {   0, "nonStandard" },
  {   1, "algorithm" },
  { 0, NULL }
};

static const per_choice_t MediaEncryptionAlgorithm_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "algorithm"                   , ASN1_EXTENSION_ROOT    , dissect_algorithm },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_MediaEncryptionAlgorithm(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_MediaEncryptionAlgorithm, MediaEncryptionAlgorithm_choice, "MediaEncryptionAlgorithm",
                              NULL);

  return offset;
}
static int dissect_EncryptionCapability_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MediaEncryptionAlgorithm(tvb, offset, pinfo, tree, hf_h245_EncryptionCapability_item);
}


static int
dissect_h245_EncryptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_EncryptionCapability, dissect_EncryptionCapability_item,
                                               1, 256);

  return offset;
}
static int dissect_encryptionCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionCapability(tvb, offset, pinfo, tree, hf_h245_encryptionCapability);
}

static const per_sequence_t AuthenticationCapability_sequence[] = {
  { "nonStandard"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandard },
  { "antiSpamAlgorithm"           , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_antiSpamAlgorithm },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_AuthenticationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_AuthenticationCapability, AuthenticationCapability_sequence);

  return offset;
}
static int dissect_authenticationCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AuthenticationCapability(tvb, offset, pinfo, tree, hf_h245_authenticationCapability);
}

static const per_sequence_t IntegrityCapability_sequence[] = {
  { "nonStandard"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandard },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_IntegrityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_IntegrityCapability, IntegrityCapability_sequence);

  return offset;
}
static int dissect_integrityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IntegrityCapability(tvb, offset, pinfo, tree, hf_h245_integrityCapability);
}

static const per_sequence_t EncryptionAuthenticationAndIntegrity_sequence[] = {
  { "encryptionCapability"        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_encryptionCapability },
  { "authenticationCapability"    , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_authenticationCapability },
  { "integrityCapability"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_integrityCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_EncryptionAuthenticationAndIntegrity(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_EncryptionAuthenticationAndIntegrity, EncryptionAuthenticationAndIntegrity_sequence);

  return offset;
}
static int dissect_encryptionAuthenticationAndIntegrity(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionAuthenticationAndIntegrity(tvb, offset, pinfo, tree, hf_h245_encryptionAuthenticationAndIntegrity);
}

static const per_sequence_t H235SecurityCapability_sequence[] = {
  { "encryptionAuthenticationAndIntegrity", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_encryptionAuthenticationAndIntegrity },
  { "mediaCapability"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mediaCapability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H235SecurityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H235SecurityCapability, H235SecurityCapability_sequence);

  return offset;
}
static int dissect_h235SecurityCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H235SecurityCapability(tvb, offset, pinfo, tree, hf_h245_h235SecurityCapability);
}


static int
dissect_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter, dissect_nonStandard_item,
                                               1, 16);

  return offset;
}
static int dissect_ui_nonStandard(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_16_OF_NonStandardParameter(tvb, offset, pinfo, tree, hf_h245_ui_nonStandard);
}


static const value_string h245_UserInputCapability_vals[] = {
  {   0, "nonStandard" },
  {   1, "basicString" },
  {   2, "iA5String" },
  {   3, "generalString" },
  {   4, "dtmf" },
  {   5, "hookflash" },
  {   6, "extendedAlphanumeric" },
  {   7, "encryptedBasicString" },
  {   8, "encryptedIA5String" },
  {   9, "encryptedGeneralString" },
  {  10, "secureDTMF" },
  { 0, NULL }
};

static const per_choice_t UserInputCapability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_ui_nonStandard },
  {   1, "basicString"                 , ASN1_EXTENSION_ROOT    , dissect_basicString },
  {   2, "iA5String"                   , ASN1_EXTENSION_ROOT    , dissect_iA5String },
  {   3, "generalString"               , ASN1_EXTENSION_ROOT    , dissect_generalString },
  {   4, "dtmf"                        , ASN1_EXTENSION_ROOT    , dissect_dtmf },
  {   5, "hookflash"                   , ASN1_EXTENSION_ROOT    , dissect_hookflash },
  {   6, "extendedAlphanumeric"        , ASN1_NOT_EXTENSION_ROOT, dissect_extendedAlphanumericFlag },
  {   7, "encryptedBasicString"        , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedBasicString },
  {   8, "encryptedIA5String"          , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedIA5String },
  {   9, "encryptedGeneralString"      , ASN1_NOT_EXTENSION_ROOT, dissect_encryptedGeneralString },
  {  10, "secureDTMF"                  , ASN1_NOT_EXTENSION_ROOT, dissect_secureDTMF },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_UserInputCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_UserInputCapability, UserInputCapability_choice, "UserInputCapability",
                              NULL);

  return offset;
}
static int dissect_receiveUserInputCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_UserInputCapability(tvb, offset, pinfo, tree, hf_h245_receiveUserInputCapability);
}
static int dissect_transmitUserInputCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_UserInputCapability(tvb, offset, pinfo, tree, hf_h245_transmitUserInputCapability);
}
static int dissect_receiveAndTransmitUserInputCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_UserInputCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitUserInputCapability);
}


static const value_string h245_MultiplexFormat_vals[] = {
  {   0, "nonStandard" },
  {   1, "h222Capability" },
  {   2, "h223Capability" },
  { 0, NULL }
};

static const per_choice_t MultiplexFormat_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "h222Capability"              , ASN1_EXTENSION_ROOT    , dissect_h222Capability },
  {   2, "h223Capability"              , ASN1_EXTENSION_ROOT    , dissect_h223Capability },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_MultiplexFormat(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_MultiplexFormat, MultiplexFormat_choice, "MultiplexFormat",
                              NULL);

  return offset;
}
static int dissect_multiplexFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexFormat(tvb, offset, pinfo, tree, hf_h245_multiplexFormat);
}


static int
dissect_h245_AlternativeCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_AlternativeCapabilitySet, dissect_AlternativeCapabilitySet_item,
                                               1, 256);

  return offset;
}
static int dissect_simultaneousCapabilities_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_simultaneousCapabilities_item);
}
static int dissect_capabilityOnMuxStream_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_capabilityOnMuxStream_item);
}
static int dissect_capabilities_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_capabilities_item);
}


static int
dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet, dissect_simultaneousCapabilities_item,
                                          1, 256);

  return offset;
}
static int dissect_simultaneousCapabilities(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_simultaneousCapabilities);
}
static int dissect_capabilityOnMuxStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_capabilityOnMuxStream);
}
static int dissect_capabilities(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_AlternativeCapabilitySet(tvb, offset, pinfo, tree, hf_h245_capabilities);
}

static const per_sequence_t MultiplexedStreamCapability_sequence[] = {
  { "multiplexFormat"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multiplexFormat },
  { "controlOnMuxStream"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_controlOnMuxStream },
  { "capabilityOnMuxStream"       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_capabilityOnMuxStream },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplexedStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplexedStreamCapability, MultiplexedStreamCapability_sequence);

  return offset;
}
static int dissect_receiveMultiplexedStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexedStreamCapability(tvb, offset, pinfo, tree, hf_h245_receiveMultiplexedStreamCapability);
}
static int dissect_transmitMultiplexedStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexedStreamCapability(tvb, offset, pinfo, tree, hf_h245_transmitMultiplexedStreamCapability);
}
static int dissect_receiveAndTransmitMultiplexedStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexedStreamCapability(tvb, offset, pinfo, tree, hf_h245_receiveAndTransmitMultiplexedStreamCapability);
}



static int
dissect_h245_INTEGER_96_127(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           96U, 127U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_dynamicRTPPayloadType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_96_127(tvb, offset, pinfo, tree, hf_h245_dynamicRTPPayloadType);
}

static const per_sequence_t AudioTelephonyEventCapability_sequence[] = {
  { "dynamicRTPPayloadType"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicRTPPayloadType },
  { "audioTelephoneEvent"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioTelephoneEvent },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_AudioTelephonyEventCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_AudioTelephonyEventCapability, AudioTelephonyEventCapability_sequence);

  return offset;
}
static int dissect_receiveRTPAudioTelephonyEventCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioTelephonyEventCapability(tvb, offset, pinfo, tree, hf_h245_receiveRTPAudioTelephonyEventCapability);
}

static const per_sequence_t AudioToneCapability_sequence[] = {
  { "dynamicRTPPayloadType"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dynamicRTPPayloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_AudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_AudioToneCapability, AudioToneCapability_sequence);

  return offset;
}
static int dissect_receiveRTPAudioToneCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AudioToneCapability(tvb, offset, pinfo, tree, hf_h245_receiveRTPAudioToneCapability);
}

static const per_sequence_t T_separateStream_sequence[] = {
  { "separatePort"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_separatePort },
  { "samePort"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_samePortBool },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_separateStream(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_separateStream, T_separateStream_sequence);

  return offset;
}
static int dissect_separateStreamBool(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_separateStream(tvb, offset, pinfo, tree, hf_h245_separateStreamBool);
}

static const per_sequence_t FECC_rfc2733_sequence[] = {
  { "redundancyEncoding"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_redundancyEncodingBool },
  { "separateStream"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_separateStreamBool },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_FECC_rfc2733(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_FECC_rfc2733, FECC_rfc2733_sequence);

  return offset;
}
static int dissect_fecc_rfc2733(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_FECC_rfc2733(tvb, offset, pinfo, tree, hf_h245_fecc_rfc2733);
}


static const value_string h245_FECCapability_vals[] = {
  {   0, "rfc2733" },
  { 0, NULL }
};

static const per_choice_t FECCapability_choice[] = {
  {   0, "rfc2733"                     , ASN1_EXTENSION_ROOT    , dissect_fecc_rfc2733 },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_FECCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_FECCapability, FECCapability_choice, "FECCapability",
                              NULL);

  return offset;
}
static int dissect_fecCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_FECCapability(tvb, offset, pinfo, tree, hf_h245_fecCapability);
}

static const per_sequence_t MultiplePayloadStreamCapability_sequence[] = {
  { "capabilities"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_capabilities },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplePayloadStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplePayloadStreamCapability, MultiplePayloadStreamCapability_sequence);

  return offset;
}
static int dissect_multiplePayloadStreamCapability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplePayloadStreamCapability(tvb, offset, pinfo, tree, hf_h245_multiplePayloadStreamCapability);
}


static const value_string h245_Capability_vals[] = {
  {   0, "nonStandard" },
  {   1, "receiveVideoCapability" },
  {   2, "transmitVideoCapability" },
  {   3, "receiveAndTransmitVideoCapability" },
  {   4, "receiveAudioCapability" },
  {   5, "transmitAudioCapability" },
  {   6, "receiveAndTransmitAudioCapability" },
  {   7, "receiveDataApplicationCapability" },
  {   8, "transmitDataApplicationCapability" },
  {   9, "receiveAndTransmitDataApplicationCapability" },
  {  10, "h233EncryptionTransmitCapability" },
  {  11, "h233EncryptionReceiveCapability" },
  {  12, "conferenceCapability" },
  {  13, "h235SecurityCapability" },
  {  14, "maxPendingReplacementFor" },
  {  15, "receiveUserInputCapability" },
  {  16, "transmitUserInputCapability" },
  {  17, "receiveAndTransmitUserInputCapability" },
  {  18, "genericControlCapability" },
  {  19, "receiveMultiplexedStreamCapability" },
  {  20, "transmitMultiplexedStreamCapability" },
  {  21, "receiveAndTransmitMultiplexedStreamCapability" },
  {  22, "receiveRTPAudioTelephonyEventCapability" },
  {  23, "receiveRTPAudioToneCapability" },
  {  24, "fecCapability" },
  {  25, "multiplePayloadStreamCapability" },
  { 0, NULL }
};

static const per_choice_t Capability_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "receiveVideoCapability"      , ASN1_EXTENSION_ROOT    , dissect_receiveVideoCapability },
  {   2, "transmitVideoCapability"     , ASN1_EXTENSION_ROOT    , dissect_transmitVideoCapability },
  {   3, "receiveAndTransmitVideoCapability", ASN1_EXTENSION_ROOT    , dissect_receiveAndTransmitVideoCapability },
  {   4, "receiveAudioCapability"      , ASN1_EXTENSION_ROOT    , dissect_receiveAudioCapability },
  {   5, "transmitAudioCapability"     , ASN1_EXTENSION_ROOT    , dissect_transmitAudioCapability },
  {   6, "receiveAndTransmitAudioCapability", ASN1_EXTENSION_ROOT    , dissect_receiveAndTransmitAudioCapability },
  {   7, "receiveDataApplicationCapability", ASN1_EXTENSION_ROOT    , dissect_receiveDataApplicationCapability },
  {   8, "transmitDataApplicationCapability", ASN1_EXTENSION_ROOT    , dissect_transmitDataApplicationCapability },
  {   9, "receiveAndTransmitDataApplicationCapability", ASN1_EXTENSION_ROOT    , dissect_receiveAndTransmitDataApplicationCapability },
  {  10, "h233EncryptionTransmitCapability", ASN1_EXTENSION_ROOT    , dissect_h233EncryptionTransmitCapability },
  {  11, "h233EncryptionReceiveCapability", ASN1_EXTENSION_ROOT    , dissect_h233EncryptionReceiveCapability },
  {  12, "conferenceCapability"        , ASN1_NOT_EXTENSION_ROOT, dissect_conferenceCapability },
  {  13, "h235SecurityCapability"      , ASN1_NOT_EXTENSION_ROOT, dissect_h235SecurityCapability },
  {  14, "maxPendingReplacementFor"    , ASN1_NOT_EXTENSION_ROOT, dissect_maxPendingReplacementFor },
  {  15, "receiveUserInputCapability"  , ASN1_NOT_EXTENSION_ROOT, dissect_receiveUserInputCapability },
  {  16, "transmitUserInputCapability" , ASN1_NOT_EXTENSION_ROOT, dissect_transmitUserInputCapability },
  {  17, "receiveAndTransmitUserInputCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveAndTransmitUserInputCapability },
  {  18, "genericControlCapability"    , ASN1_NOT_EXTENSION_ROOT, dissect_genericControlCapability },
  {  19, "receiveMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveMultiplexedStreamCapability },
  {  20, "transmitMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_transmitMultiplexedStreamCapability },
  {  21, "receiveAndTransmitMultiplexedStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveAndTransmitMultiplexedStreamCapability },
  {  22, "receiveRTPAudioTelephonyEventCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveRTPAudioTelephonyEventCapability },
  {  23, "receiveRTPAudioToneCapability", ASN1_NOT_EXTENSION_ROOT, dissect_receiveRTPAudioToneCapability },
  {  24, "fecCapability"               , ASN1_NOT_EXTENSION_ROOT, dissect_fecCapability },
  {  25, "multiplePayloadStreamCapability", ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStreamCapability },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_Capability(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_Capability, Capability_choice, "Capability",
                              NULL);

  return offset;
}
static int dissect_capability(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Capability(tvb, offset, pinfo, tree, hf_h245_capability);
}

static const per_sequence_t CapabilityTableEntry_sequence[] = {
  { "capabilityTableEntryNumber"  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_capabilityTableEntryNumber },
  { "capability"                  , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_capability },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_CapabilityTableEntry(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_CapabilityTableEntry, CapabilityTableEntry_sequence);

  return offset;
}
static int dissect_capabilityTable_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityTableEntry(tvb, offset, pinfo, tree, hf_h245_capabilityTable_item);
}


static int
dissect_h245_SET_SIZE_1_256_OF_CapabilityTableEntry(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_256_OF_CapabilityTableEntry, dissect_capabilityTable_item,
                                          1, 256);

  return offset;
}
static int dissect_capabilityTable(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_CapabilityTableEntry(tvb, offset, pinfo, tree, hf_h245_capabilityTable);
}



static int
dissect_h245_CapabilityDescriptorNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 255U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_capabilityDescriptorNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityDescriptorNumber(tvb, offset, pinfo, tree, hf_h245_capabilityDescriptorNumber);
}
static int dissect_capabilityDescriptorNumbers_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityDescriptorNumber(tvb, offset, pinfo, tree, hf_h245_capabilityDescriptorNumbers_item);
}

static const per_sequence_t CapabilityDescriptor_sequence[] = {
  { "capabilityDescriptorNumber"  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_capabilityDescriptorNumber },
  { "simultaneousCapabilities"    , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_simultaneousCapabilities },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_CapabilityDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_CapabilityDescriptor, CapabilityDescriptor_sequence);

  return offset;
}
static int dissect_capabilityDescriptors_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CapabilityDescriptor(tvb, offset, pinfo, tree, hf_h245_capabilityDescriptors_item);
}


static int
dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_256_OF_CapabilityDescriptor, dissect_capabilityDescriptors_item,
                                          1, 256);

  return offset;
}
static int dissect_capabilityDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_256_OF_CapabilityDescriptor(tvb, offset, pinfo, tree, hf_h245_capabilityDescriptors);
}

static const per_sequence_t TerminalCapabilitySet_sequence[] = {
  { "sequenceNumber"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sequenceNumber },
  { "protocolIdentifier"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_protocolIdentifier },
  { "multiplexCapability"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_multiplexCapability },
  { "capabilityTable"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_capabilityTable },
  { "capabilityDescriptors"       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_capabilityDescriptors },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_TerminalCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_TerminalCapabilitySet, TerminalCapabilitySet_sequence);


  h245_pi->msg_type = H245_TermCapSet;
  return offset;
}
static int dissect_terminalCapabilitySet(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalCapabilitySet(tvb, offset, pinfo, tree, hf_h245_terminalCapabilitySet);
}



static int
dissect_h245_LogicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 65535U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_forwardLogicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_forwardLogicalChannelNumber);
}
static int dissect_forwardLogicalChannelDependency(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_forwardLogicalChannelDependency);
}
static int dissect_replacementFor(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_replacementFor);
}
static int dissect_reverseLogicalChannelDependency(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_reverseLogicalChannelDependency);
}
static int dissect_reverseLogicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_reverseLogicalChannelNumber);
}
static int dissect_logicalChannelNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_logicalChannelNumber);
}
static int dissect_mediaLoop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_mediaLoop);
}
static int dissect_logicalChannelLoop(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_logicalChannelLoop);
}
static int dissect_broadcastMyLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_broadcastMyLogicalChannel);
}
static int dissect_cancelBroadcastMyLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_cancelBroadcastMyLogicalChannel);
}
static int dissect_logicalChannelNumber1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_logicalChannelNumber1);
}
static int dissect_logicalChannelNumber2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_LogicalChannelNumber(tvb, offset, pinfo, tree, hf_h245_logicalChannelNumber2);
}


static const value_string h245_EncryptionMode_vals[] = {
  {   0, "nonStandard" },
  {   1, "h233Encryption" },
  { 0, NULL }
};

static const per_choice_t EncryptionMode_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "h233Encryption"              , ASN1_EXTENSION_ROOT    , dissect_h233Encryption },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_EncryptionMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_EncryptionMode, EncryptionMode_choice, "EncryptionMode",
                              NULL);

  return offset;
}
static int dissect_encryptionData(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionMode(tvb, offset, pinfo, tree, hf_h245_encryptionData);
}
static int dissect_encryptionMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionMode(tvb, offset, pinfo, tree, hf_h245_encryptionMode);
}

static const per_sequence_t RedundancyEncodingElement_sequence[] = {
  { "dataType"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataType },
  { "payloadType"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_payloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RedundancyEncodingElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RedundancyEncodingElement, RedundancyEncodingElement_sequence);

  return offset;
}
static int dissect_primary(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RedundancyEncodingElement(tvb, offset, pinfo, tree, hf_h245_primary);
}
static int dissect_secondary_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RedundancyEncodingElement(tvb, offset, pinfo, tree, hf_h245_secondary_item);
}


static int
dissect_h245_SEQUENCE_OF_RedundancyEncodingElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_RedundancyEncodingElement, dissect_secondary_item);

  return offset;
}
static int dissect_secondary(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_RedundancyEncodingElement(tvb, offset, pinfo, tree, hf_h245_secondary);
}

static const per_sequence_t T_rtpRedundancyEncoding_sequence[] = {
  { "primary"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_primary },
  { "secondary"                   , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_secondary },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_rtpRedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_rtpRedundancyEncoding, T_rtpRedundancyEncoding_sequence);

  return offset;
}
static int dissect_rtpRedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_rtpRedundancyEncoding(tvb, offset, pinfo, tree, hf_h245_rtpRedundancyEncoding);
}

static const per_sequence_t RedundancyEncoding_sequence[] = {
  { "redundancyEncodingMethod"    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_redundancyEncodingMethod },
  { "secondaryEncoding3"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_secondaryEncoding3 },
  { "rtpRedundancyEncoding"       , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rtpRedundancyEncoding },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RedundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RedundancyEncoding, RedundancyEncoding_sequence);

  return offset;
}
static int dissect_redundancyEncoding(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RedundancyEncoding(tvb, offset, pinfo, tree, hf_h245_redundancyEncoding);
}

static const per_sequence_t MultiplePayloadStreamElement_sequence[] = {
  { "dataType"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataType },
  { "payloadType"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_payloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplePayloadStreamElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplePayloadStreamElement, MultiplePayloadStreamElement_sequence);

  return offset;
}
static int dissect_elements_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplePayloadStreamElement(tvb, offset, pinfo, tree, hf_h245_elements_item);
}


static int
dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_SEQUENCE_OF_MultiplePayloadStreamElement, dissect_elements_item);

  return offset;
}
static int dissect_elements(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_OF_MultiplePayloadStreamElement(tvb, offset, pinfo, tree, hf_h245_elements);
}

static const per_sequence_t MultiplePayloadStream_sequence[] = {
  { "elements"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_elements },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplePayloadStream(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplePayloadStream, MultiplePayloadStream_sequence);

  return offset;
}
static int dissect_multiplePayloadStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplePayloadStream(tvb, offset, pinfo, tree, hf_h245_multiplePayloadStream);
}

static const per_sequence_t T_differentPort_sequence[] = {
  { "protectedSessionID"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_protectedSessionID },
  { "protectedPayloadType"        , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_protectedPayloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_differentPort(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_differentPort, T_differentPort_sequence);

  return offset;
}
static int dissect_differentPort(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_differentPort(tvb, offset, pinfo, tree, hf_h245_differentPort);
}

static const per_sequence_t T_samePort_sequence[] = {
  { "protectedPayloadType"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_protectedPayloadType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_samePort(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_samePort, T_samePort_sequence);

  return offset;
}
static int dissect_samePort(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_samePort(tvb, offset, pinfo, tree, hf_h245_samePort);
}


static const value_string h245_SeparateStream_vals[] = {
  {   0, "differentPort" },
  {   1, "samePort" },
  { 0, NULL }
};

static const per_choice_t SeparateStream_choice[] = {
  {   0, "differentPort"               , ASN1_EXTENSION_ROOT    , dissect_differentPort },
  {   1, "samePort"                    , ASN1_EXTENSION_ROOT    , dissect_samePort },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_SeparateStream(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_SeparateStream, SeparateStream_choice, "SeparateStream",
                              NULL);

  return offset;
}
static int dissect_separateStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SeparateStream(tvb, offset, pinfo, tree, hf_h245_separateStream);
}


static const value_string h245_FECdata_mode_vals[] = {
  {   0, "redundancyEncoding" },
  {   1, "separateStream" },
  { 0, NULL }
};

static const per_choice_t FECdata_mode_choice[] = {
  {   0, "redundancyEncoding"          , ASN1_EXTENSION_ROOT    , dissect_redundancyEncodingFlag },
  {   1, "separateStream"              , ASN1_EXTENSION_ROOT    , dissect_separateStream },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_FECdata_mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_FECdata_mode, FECdata_mode_choice, "FECdata_mode",
                              NULL);

  return offset;
}
static int dissect_fec_data_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_FECdata_mode(tvb, offset, pinfo, tree, hf_h245_fec_data_mode);
}

static const per_sequence_t RFC2733Data_sequence[] = {
  { "mode"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_fec_data_mode },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RFC2733Data(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RFC2733Data, RFC2733Data_sequence);

  return offset;
}
static int dissect_rfc2733(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RFC2733Data(tvb, offset, pinfo, tree, hf_h245_rfc2733);
}


static const value_string h245_FECData_vals[] = {
  {   0, "rfc2733" },
  { 0, NULL }
};

static const per_choice_t FECData_choice[] = {
  {   0, "rfc2733"                     , ASN1_NO_EXTENSIONS     , dissect_rfc2733 },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_FECData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_FECData, FECData_choice, "FECData",
                              NULL);

  return offset;
}
static int dissect_fec(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_FECData(tvb, offset, pinfo, tree, hf_h245_fec);
}


static const value_string h245_T_mediaType_vals[] = {
  {   0, "nonStandard" },
  {   1, "videoData" },
  {   2, "audioData" },
  {   3, "data" },
  {   4, "redundancyEncoding" },
  {   5, "multiplePayloadStream" },
  {   6, "fec" },
  { 0, NULL }
};

static const per_choice_t T_mediaType_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "videoData"                   , ASN1_EXTENSION_ROOT    , dissect_videoData },
  {   2, "audioData"                   , ASN1_EXTENSION_ROOT    , dissect_audioData },
  {   3, "data"                        , ASN1_EXTENSION_ROOT    , dissect_data },
  {   4, "redundancyEncoding"          , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncoding },
  {   5, "multiplePayloadStream"       , ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStream },
  {   6, "fec"                         , ASN1_NOT_EXTENSION_ROOT, dissect_fec },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_mediaType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_mediaType, T_mediaType_choice, "T_mediaType",
                              NULL);

  return offset;
}
static int dissect_mediaType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mediaType(tvb, offset, pinfo, tree, hf_h245_mediaType);
}

static const per_sequence_t H235Media_sequence[] = {
  { "encryptionAuthenticationAndIntegrity", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_encryptionAuthenticationAndIntegrity },
  { "mediaType"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mediaType },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H235Media(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H235Media, H235Media_sequence);

  return offset;
}
static int dissect_h235Media(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H235Media(tvb, offset, pinfo, tree, hf_h245_h235Media);
}

static const per_sequence_t MultiplexedStreamParameter_sequence[] = {
  { "multiplexFormat"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multiplexFormat },
  { "controlOnMuxStream"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_controlOnMuxStream },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplexedStreamParameter(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplexedStreamParameter, MultiplexedStreamParameter_sequence);

  return offset;
}
static int dissect_multiplexedStream(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexedStreamParameter(tvb, offset, pinfo, tree, hf_h245_multiplexedStream);
}
static int dissect_multiplexedStreamMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexedStreamParameter(tvb, offset, pinfo, tree, hf_h245_multiplexedStreamMode);
}


static const value_string h245_DataType_vals[] = {
  {   0, "nonStandard" },
  {   1, "nullData" },
  {   2, "videoData" },
  {   3, "audioData" },
  {   4, "data" },
  {   5, "encryptionData" },
  {   6, "h235Control" },
  {   7, "h235Media" },
  {   8, "multiplexedStream" },
  {   9, "redundancyEncoding" },
  {  10, "multiplePayloadStream" },
  {  11, "fec" },
  { 0, NULL }
};

static const per_choice_t DataType_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "nullData"                    , ASN1_EXTENSION_ROOT    , dissect_nullData },
  {   2, "videoData"                   , ASN1_EXTENSION_ROOT    , dissect_videoData },
  {   3, "audioData"                   , ASN1_EXTENSION_ROOT    , dissect_audioData },
  {   4, "data"                        , ASN1_EXTENSION_ROOT    , dissect_data },
  {   5, "encryptionData"              , ASN1_EXTENSION_ROOT    , dissect_encryptionData },
  {   6, "h235Control"                 , ASN1_NOT_EXTENSION_ROOT, dissect_h235Control },
  {   7, "h235Media"                   , ASN1_NOT_EXTENSION_ROOT, dissect_h235Media },
  {   8, "multiplexedStream"           , ASN1_NOT_EXTENSION_ROOT, dissect_multiplexedStream },
  {   9, "redundancyEncoding"          , ASN1_NOT_EXTENSION_ROOT, dissect_redundancyEncoding },
  {  10, "multiplePayloadStream"       , ASN1_NOT_EXTENSION_ROOT, dissect_multiplePayloadStream },
  {  11, "fec"                         , ASN1_NOT_EXTENSION_ROOT, dissect_fec },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_DataType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_DataType, DataType_choice, "DataType",
                              NULL);

  return offset;
}



static int
dissect_h245_INTEGER_0_8191(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 8191U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_subChannelID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_8191(tvb, offset, pinfo, tree, hf_h245_subChannelID);
}
static int dissect_pcr_pid(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_8191(tvb, offset, pinfo, tree, hf_h245_pcr_pid);
}

static const per_sequence_t H222LogicalChannelParameters_sequence[] = {
  { "resourceID"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_resourceID },
  { "subChannelID"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_subChannelID },
  { "pcr-pid"                     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_pcr_pid },
  { "programDescriptors"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_programDescriptors },
  { "streamDescriptors"           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_streamDescriptors },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H222LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H222LogicalChannelParameters, H222LogicalChannelParameters_sequence);

  return offset;
}
static int dissect_h222LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H222LogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_h222LogicalChannelParameters);
}



static int
dissect_h245_INTEGER_0_2(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 2U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_controlFieldOctets(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_2(tvb, offset, pinfo, tree, hf_h245_controlFieldOctets);
}

static const per_sequence_t Al3_sequence[] = {
  { "controlFieldOctets"          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_controlFieldOctets },
  { "sendBufferSize"              , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_sendBufferSize },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_Al3(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_Al3, Al3_sequence);

  return offset;
}
static int dissect_al3(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Al3(tvb, offset, pinfo, tree, hf_h245_al3);
}


static const value_string h245_T_transferMode_vals[] = {
  {   0, "framed" },
  {   1, "unframed" },
  { 0, NULL }
};

static const per_choice_t T_transferMode_choice[] = {
  {   0, "framed"                      , ASN1_EXTENSION_ROOT    , dissect_framed },
  {   1, "unframed"                    , ASN1_EXTENSION_ROOT    , dissect_unframed },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_transferMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_transferMode, T_transferMode_choice, "T_transferMode",
                              NULL);

  return offset;
}
static int dissect_transferMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_transferMode(tvb, offset, pinfo, tree, hf_h245_transferMode);
}


static const value_string h245_AL1HeaderFEC_vals[] = {
  {   0, "sebch16-7" },
  {   1, "golay24-12" },
  { 0, NULL }
};

static const per_choice_t AL1HeaderFEC_choice[] = {
  {   0, "sebch16-7"                   , ASN1_EXTENSION_ROOT    , dissect_sebch16_7 },
  {   1, "golay24-12"                  , ASN1_EXTENSION_ROOT    , dissect_golay24_12 },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_AL1HeaderFEC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_AL1HeaderFEC, AL1HeaderFEC_choice, "AL1HeaderFEC",
                              NULL);

  return offset;
}
static int dissect_AL1HeaderFEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AL1HeaderFEC(tvb, offset, pinfo, tree, hf_h245_AL1HeaderFEC);
}


static const value_string h245_AL1CrcLength_vals[] = {
  {   0, "crc4bit" },
  {   1, "crc12bit" },
  {   2, "crc20bit" },
  {   3, "crc28bit" },
  {   4, "crc8bit" },
  {   5, "crc16bit" },
  {   6, "crc32bit" },
  {   7, "crcNotUsed" },
  { 0, NULL }
};

static const per_choice_t AL1CrcLength_choice[] = {
  {   0, "crc4bit"                     , ASN1_EXTENSION_ROOT    , dissect_crc4bit },
  {   1, "crc12bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc12bit },
  {   2, "crc20bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc20bit },
  {   3, "crc28bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc28bit },
  {   4, "crc8bit"                     , ASN1_NOT_EXTENSION_ROOT, dissect_crc8bit },
  {   5, "crc16bit"                    , ASN1_NOT_EXTENSION_ROOT, dissect_crc16bit },
  {   6, "crc32bit"                    , ASN1_NOT_EXTENSION_ROOT, dissect_crc32bit },
  {   7, "crcNotUsed"                  , ASN1_NOT_EXTENSION_ROOT, dissect_crcNotUsed },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_AL1CrcLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_AL1CrcLength, AL1CrcLength_choice, "AL1CrcLength",
                              NULL);

  return offset;
}
static int dissect_crcLength2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AL1CrcLength(tvb, offset, pinfo, tree, hf_h245_crcLength2);
}



static int
dissect_h245_INTEGER_8_32(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           8U, 32U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_rcpcCodeRate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_8_32(tvb, offset, pinfo, tree, hf_h245_rcpcCodeRate);
}



static int
dissect_h245_INTEGER_0_16(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 16U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_finite(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_INTEGER_0_16(tvb, offset, pinfo, tree, hf_h245_finite);
}


static const value_string h245_T_numberOfRetransmissions_vals[] = {
  {   0, "finite" },
  {   1, "infinite" },
  { 0, NULL }
};

static const per_choice_t T_numberOfRetransmissions_choice[] = {
  {   0, "finite"                      , ASN1_EXTENSION_ROOT    , dissect_finite },
  {   1, "infinite"                    , ASN1_EXTENSION_ROOT    , dissect_infinite },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_numberOfRetransmissions(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_numberOfRetransmissions, T_numberOfRetransmissions_choice, "T_numberOfRetransmissions",
                              NULL);

  return offset;
}
static int dissect_numberOfRetransmissions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_numberOfRetransmissions(tvb, offset, pinfo, tree, hf_h245_numberOfRetransmissions);
}

static const per_sequence_t H223AnnexCArqParameters_sequence[] = {
  { "numberOfRetransmissions"     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_numberOfRetransmissions },
  { "sendBufferSize"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sendBufferSize },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223AnnexCArqParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223AnnexCArqParameters, H223AnnexCArqParameters_sequence);

  return offset;
}
static int dissect_typeIArq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AnnexCArqParameters(tvb, offset, pinfo, tree, hf_h245_typeIArq);
}
static int dissect_typeIIArq(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AnnexCArqParameters(tvb, offset, pinfo, tree, hf_h245_typeIIArq);
}


static const value_string h245_ArqType_vals[] = {
  {   0, "noArq" },
  {   1, "typeIArq" },
  {   2, "typeIIArq" },
  { 0, NULL }
};

static const per_choice_t ArqType_choice[] = {
  {   0, "noArq"                       , ASN1_EXTENSION_ROOT    , dissect_noArq },
  {   1, "typeIArq"                    , ASN1_EXTENSION_ROOT    , dissect_typeIArq },
  {   2, "typeIIArq"                   , ASN1_EXTENSION_ROOT    , dissect_typeIIArq },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_ArqType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_ArqType, ArqType_choice, "ArqType",
                              NULL);

  return offset;
}
static int dissect_arqType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ArqType(tvb, offset, pinfo, tree, hf_h245_arqType);
}

static const per_sequence_t H223AL1MParameters_sequence[] = {
  { "transferMode"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_transferMode },
  { "headerFEC"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_AL1HeaderFEC },
  { "crcLength"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crcLength2 },
  { "rcpcCodeRate"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rcpcCodeRate },
  { "arqType"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arqType },
  { "alpduInterleaving"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alpduInterleaving },
  { "alsduSplitting"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alsduSplitting },
  { "rsCodeCorrection"            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rsCodeCorrection },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223AL1MParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223AL1MParameters, H223AL1MParameters_sequence);

  return offset;
}
static int dissect_al1M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AL1MParameters(tvb, offset, pinfo, tree, hf_h245_al1M);
}


static const value_string h245_AL2HeaderFEC_vals[] = {
  {   0, "sebch16-5" },
  {   1, "golay24-12" },
  { 0, NULL }
};

static const per_choice_t AL2HeaderFEC_choice[] = {
  {   0, "sebch16-5"                   , ASN1_EXTENSION_ROOT    , dissect_sebch16_5 },
  {   1, "golay24-12"                  , ASN1_EXTENSION_ROOT    , dissect_golay24_12 },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_AL2HeaderFEC(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_AL2HeaderFEC, AL2HeaderFEC_choice, "AL2HeaderFEC",
                              NULL);

  return offset;
}
static int dissect_AL2HeaderFEC(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AL2HeaderFEC(tvb, offset, pinfo, tree, hf_h245_AL2HeaderFEC);
}

static const per_sequence_t H223AL2MParameters_sequence[] = {
  { "headerFEC"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_AL2HeaderFEC },
  { "alpduInterleaving"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alpduInterleaving },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223AL2MParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223AL2MParameters, H223AL2MParameters_sequence);

  return offset;
}
static int dissect_al2M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AL2MParameters(tvb, offset, pinfo, tree, hf_h245_al2M);
}


static const value_string h245_T_headerFormat_vals[] = {
  {   0, "sebch16-7" },
  {   1, "golay24-12" },
  { 0, NULL }
};

static const per_choice_t T_headerFormat_choice[] = {
  {   0, "sebch16-7"                   , ASN1_EXTENSION_ROOT    , dissect_sebch16_7 },
  {   1, "golay24-12"                  , ASN1_EXTENSION_ROOT    , dissect_golay24_12 },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_headerFormat(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_headerFormat, T_headerFormat_choice, "T_headerFormat",
                              NULL);

  return offset;
}
static int dissect_headerFormat(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_headerFormat(tvb, offset, pinfo, tree, hf_h245_headerFormat);
}


static const value_string h245_AL3CrcLength_vals[] = {
  {   0, "crc4bit" },
  {   1, "crc12bit" },
  {   2, "crc20bit" },
  {   3, "crc28bit" },
  {   4, "crc8bit" },
  {   5, "crc16bit" },
  {   6, "crc32bit" },
  {   7, "crcNotUsed" },
  { 0, NULL }
};

static const per_choice_t AL3CrcLength_choice[] = {
  {   0, "crc4bit"                     , ASN1_EXTENSION_ROOT    , dissect_crc4bit },
  {   1, "crc12bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc12bit },
  {   2, "crc20bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc20bit },
  {   3, "crc28bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc28bit },
  {   4, "crc8bit"                     , ASN1_NOT_EXTENSION_ROOT, dissect_crc8bit },
  {   5, "crc16bit"                    , ASN1_NOT_EXTENSION_ROOT, dissect_crc16bit },
  {   6, "crc32bit"                    , ASN1_NOT_EXTENSION_ROOT, dissect_crc32bit },
  {   7, "crcNotUsed"                  , ASN1_NOT_EXTENSION_ROOT, dissect_crcNotUsed },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_AL3CrcLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_AL3CrcLength, AL3CrcLength_choice, "AL3CrcLength",
                              NULL);

  return offset;
}
static int dissect_crlength2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_AL3CrcLength(tvb, offset, pinfo, tree, hf_h245_crlength2);
}

static const per_sequence_t H223AL3MParameters_sequence[] = {
  { "headerFormat"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_headerFormat },
  { "crcLength"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crlength2 },
  { "rcpcCodeRate"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_rcpcCodeRate },
  { "arqType"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arqType },
  { "alpduInterleaving"           , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_alpduInterleaving },
  { "rsCodeCorrection"            , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_rsCodeCorrection },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223AL3MParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223AL3MParameters, H223AL3MParameters_sequence);

  return offset;
}
static int dissect_al3M(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223AL3MParameters(tvb, offset, pinfo, tree, hf_h245_al3M);
}


static const value_string h245_T_adaptationLayerType_vals[] = {
  {   0, "nonStandard" },
  {   1, "al1Framed" },
  {   2, "al1NotFramed" },
  {   3, "al2WithoutSequenceNumbers" },
  {   4, "al2WithSequenceNumbers" },
  {   5, "al3" },
  {   6, "al1M" },
  {   7, "al2M" },
  {   8, "al3M" },
  { 0, NULL }
};

static const per_choice_t T_adaptationLayerType_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "al1Framed"                   , ASN1_EXTENSION_ROOT    , dissect_al1Framed },
  {   2, "al1NotFramed"                , ASN1_EXTENSION_ROOT    , dissect_al1NotFramed },
  {   3, "al2WithoutSequenceNumbers"   , ASN1_EXTENSION_ROOT    , dissect_al2WithoutSequenceNumbers },
  {   4, "al2WithSequenceNumbers"      , ASN1_EXTENSION_ROOT    , dissect_al2WithSequenceNumbers },
  {   5, "al3"                         , ASN1_EXTENSION_ROOT    , dissect_al3 },
  {   6, "al1M"                        , ASN1_NOT_EXTENSION_ROOT, dissect_al1M },
  {   7, "al2M"                        , ASN1_NOT_EXTENSION_ROOT, dissect_al2M },
  {   8, "al3M"                        , ASN1_NOT_EXTENSION_ROOT, dissect_al3M },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_adaptationLayerType(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_adaptationLayerType, T_adaptationLayerType_choice, "T_adaptationLayerType",
                              NULL);

  return offset;
}
static int dissect_adaptationLayerType(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_adaptationLayerType(tvb, offset, pinfo, tree, hf_h245_adaptationLayerType);
}

static const per_sequence_t H223LogicalChannelParameters_sequence[] = {
  { "adaptationLayerType"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_adaptationLayerType },
  { "segmentableFlag"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_segmentableFlag },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H223LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H223LogicalChannelParameters, H223LogicalChannelParameters_sequence);

  return offset;
}
static int dissect_h223LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H223LogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_h223LogicalChannelParameters);
}


static const value_string h245_CRCLength_vals[] = {
  {   0, "crc8bit" },
  {   1, "crc16bit" },
  {   2, "crc32bit" },
  { 0, NULL }
};

static const per_choice_t CRCLength_choice[] = {
  {   0, "crc8bit"                     , ASN1_EXTENSION_ROOT    , dissect_crc8bit },
  {   1, "crc16bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc16bit },
  {   2, "crc32bit"                    , ASN1_EXTENSION_ROOT    , dissect_crc32bit },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_CRCLength(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_CRCLength, CRCLength_choice, "CRCLength",
                              NULL);

  return offset;
}
static int dissect_crcLength(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CRCLength(tvb, offset, pinfo, tree, hf_h245_crcLength);
}

static const per_sequence_t V76HDLCParameters_sequence[] = {
  { "crcLength"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_crcLength },
  { "n401"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_n401 },
  { "loopbackTestProcedure"       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_loopbackTestProcedure },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V76HDLCParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V76HDLCParameters, V76HDLCParameters_sequence);

  return offset;
}
static int dissect_hdlcParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V76HDLCParameters(tvb, offset, pinfo, tree, hf_h245_hdlcParameters);
}


static const value_string h245_T_suspendResume_vals[] = {
  {   0, "noSuspendResume" },
  {   1, "suspendResumewAddress" },
  {   2, "suspendResumewoAddress" },
  { 0, NULL }
};

static const per_choice_t T_suspendResume_choice[] = {
  {   0, "noSuspendResume"             , ASN1_EXTENSION_ROOT    , dissect_noSuspendResume },
  {   1, "suspendResumewAddress"       , ASN1_EXTENSION_ROOT    , dissect_suspendResumewAddress },
  {   2, "suspendResumewoAddress"      , ASN1_EXTENSION_ROOT    , dissect_suspendResumewoAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_suspendResume(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_suspendResume, T_suspendResume_choice, "T_suspendResume",
                              NULL);

  return offset;
}
static int dissect_suspendResume(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_suspendResume(tvb, offset, pinfo, tree, hf_h245_suspendResume);
}


static const value_string h245_T_recovery_vals[] = {
  {   0, "rej" },
  {   1, "sREJ" },
  {   2, "mSREJ" },
  { 0, NULL }
};

static const per_choice_t T_recovery_choice[] = {
  {   0, "rej"                         , ASN1_EXTENSION_ROOT    , dissect_rej },
  {   1, "sREJ"                        , ASN1_EXTENSION_ROOT    , dissect_sREJ },
  {   2, "mSREJ"                       , ASN1_EXTENSION_ROOT    , dissect_mSREJ },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_recovery(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_recovery, T_recovery_choice, "T_recovery",
                              NULL);

  return offset;
}
static int dissect_recovery(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_recovery(tvb, offset, pinfo, tree, hf_h245_recovery);
}

static const per_sequence_t T_eRM_sequence[] = {
  { "windowSize"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_windowSize },
  { "recovery"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_recovery },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_eRM(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_eRM, T_eRM_sequence);

  return offset;
}
static int dissect_eRM(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_eRM(tvb, offset, pinfo, tree, hf_h245_eRM);
}


static const value_string h245_V76LCP_mode_vals[] = {
  {   0, "eRM" },
  {   1, "uNERM" },
  { 0, NULL }
};

static const per_choice_t V76LCP_mode_choice[] = {
  {   0, "eRM"                         , ASN1_EXTENSION_ROOT    , dissect_eRM },
  {   1, "uNERM"                       , ASN1_EXTENSION_ROOT    , dissect_uNERM },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_V76LCP_mode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_V76LCP_mode, V76LCP_mode_choice, "V76LCP_mode",
                              NULL);

  return offset;
}
static int dissect_v76_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V76LCP_mode(tvb, offset, pinfo, tree, hf_h245_v76_mode);
}

static const per_sequence_t V75Parameters_sequence[] = {
  { "audioHeaderPresent"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_audioHeaderPresent },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V75Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V75Parameters, V75Parameters_sequence);

  return offset;
}
static int dissect_v75Parameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V75Parameters(tvb, offset, pinfo, tree, hf_h245_v75Parameters);
}

static const per_sequence_t V76LogicalChannelParameters_sequence[] = {
  { "hdlcParameters"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_hdlcParameters },
  { "suspendResume"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_suspendResume },
  { "uIH"                         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_uIH },
  { "mode"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_v76_mode },
  { "v75Parameters"               , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_v75Parameters },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_V76LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_V76LogicalChannelParameters, V76LogicalChannelParameters_sequence);

  return offset;
}
static int dissect_v76LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_V76LogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_v76LogicalChannelParameters);
}


static int
dissect_h245_Ipv4_network(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {

guint32 value_offset;
guint32 value_len;

  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    4, 4,
                                    &value_offset, &value_len);
  if ( media_channel )
      tvb_memcpy(tvb, (char *)&ipv4_address, value_offset, 4);

  if ( media_control_channel )
      tvb_memcpy(tvb, (char *)&rtcp_ipv4_address, value_offset, 4);


  return offset;
}
static int dissect_ip4_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Ipv4_network(tvb, offset, pinfo, tree, hf_h245_ip4_network);
}



static int
dissect_h245_TsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
guint32 tsapIdentifier;


      offset=dissect_per_constrained_integer(tvb, offset, pinfo, tree,
            hf_h245_tsapIdentifier,  0,  65535,
            &tsapIdentifier, NULL, FALSE);
  if ( media_channel )
      ipv4_port = tsapIdentifier;

  if ( media_control_channel )
      rtcp_ipv4_port = tsapIdentifier;


  return offset;
}
static int dissect_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TsapIdentifier(tvb, offset, pinfo, tree, hf_h245_tsapIdentifier);
}

static const per_sequence_t T_iPAddress_sequence[] = {
  { "network"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ip4_network },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_tsapIdentifier },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_iPAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_iPAddress, T_iPAddress_sequence);

  return offset;
}
static int dissect_iPAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_iPAddress(tvb, offset, pinfo, tree, hf_h245_iPAddress);
}


static int
dissect_h245_OCTET_STRING_SIZE_6(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    6, 6,
                                    NULL, NULL);

  return offset;
}
static int dissect_node(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_6(tvb, offset, pinfo, tree, hf_h245_node);
}


static int
dissect_h245_OCTET_STRING_SIZE_4(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    4, 4,
                                    NULL, NULL);

  return offset;
}
static int dissect_netnum(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_4(tvb, offset, pinfo, tree, hf_h245_netnum);
}
static int dissect_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_4(tvb, offset, pinfo, tree, hf_h245_network);
}
static int dissect_route_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_4(tvb, offset, pinfo, tree, hf_h245_route_item);
}
static int dissect_mip4_network(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_4(tvb, offset, pinfo, tree, hf_h245_mip4_network);
}


static int
dissect_h245_OCTET_STRING_SIZE_2(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    2, 2,
                                    NULL, NULL);

  return offset;
}
static int dissect_ipx_tsapIdentifier(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_2(tvb, offset, pinfo, tree, hf_h245_ipx_tsapIdentifier);
}

static const per_sequence_t T_iPXAddress_sequence[] = {
  { "node"                        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_node },
  { "netnum"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_netnum },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ipx_tsapIdentifier },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_iPXAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_iPXAddress, T_iPXAddress_sequence);

  return offset;
}
static int dissect_iPXAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_iPXAddress(tvb, offset, pinfo, tree, hf_h245_iPXAddress);
}

static const per_sequence_t T_iP6Address_sequence[] = {
  { "network"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ip6_network },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_ipv6_tsapIdentifier },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_iP6Address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_iP6Address, T_iP6Address_sequence);

  return offset;
}
static int dissect_iP6Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_iP6Address(tvb, offset, pinfo, tree, hf_h245_iP6Address);
}


static const value_string h245_T_routing_vals[] = {
  {   0, "strict" },
  {   1, "loose" },
  { 0, NULL }
};

static const per_choice_t T_routing_choice[] = {
  {   0, "strict"                      , ASN1_NO_EXTENSIONS     , dissect_strict },
  {   1, "loose"                       , ASN1_NO_EXTENSIONS     , dissect_loose },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_routing(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_routing, T_routing_choice, "T_routing",
                              NULL);

  return offset;
}
static int dissect_routing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_routing(tvb, offset, pinfo, tree, hf_h245_routing);
}


static int
dissect_h245_T_route(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                   ett_h245_T_route, dissect_route_item);

  return offset;
}
static int dissect_route(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_route(tvb, offset, pinfo, tree, hf_h245_route);
}

static const per_sequence_t T_iPSourceRouteAddress_sequence[] = {
  { "routing"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_routing },
  { "network"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_network },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_iPSrcRoute_tsapIdentifier },
  { "route"                       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_route },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_iPSourceRouteAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_iPSourceRouteAddress, T_iPSourceRouteAddress_sequence);

  return offset;
}
static int dissect_iPSourceRouteAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_iPSourceRouteAddress(tvb, offset, pinfo, tree, hf_h245_iPSourceRouteAddress);
}


static const value_string h245_UnicastAddress_vals[] = {
  {   0, "iPAddress" },
  {   1, "iPXAddress" },
  {   2, "iP6Address" },
  {   3, "netBios" },
  {   4, "iPSourceRouteAddress" },
  {   5, "nsap" },
  {   6, "nonStandardAddress" },
  { 0, NULL }
};

static const per_choice_t UnicastAddress_choice[] = {
  {   0, "iPAddress"                   , ASN1_EXTENSION_ROOT    , dissect_iPAddress },
  {   1, "iPXAddress"                  , ASN1_EXTENSION_ROOT    , dissect_iPXAddress },
  {   2, "iP6Address"                  , ASN1_EXTENSION_ROOT    , dissect_iP6Address },
  {   3, "netBios"                     , ASN1_EXTENSION_ROOT    , dissect_netBios },
  {   4, "iPSourceRouteAddress"        , ASN1_EXTENSION_ROOT    , dissect_iPSourceRouteAddress },
  {   5, "nsap"                        , ASN1_NOT_EXTENSION_ROOT, dissect_nsap },
  {   6, "nonStandardAddress"          , ASN1_NOT_EXTENSION_ROOT, dissect_nonStandardAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_UnicastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_UnicastAddress, UnicastAddress_choice, "UnicastAddress",
                              NULL);

  return offset;
}
static int dissect_unicastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_UnicastAddress(tvb, offset, pinfo, tree, hf_h245_unicastAddress);
}

static const per_sequence_t MIPAddress_sequence[] = {
  { "network"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mip4_network },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multicast_tsapIdentifier },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MIPAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MIPAddress, MIPAddress_sequence);

  return offset;
}
static int dissect_mIPAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MIPAddress(tvb, offset, pinfo, tree, hf_h245_mIPAddress);
}

static const per_sequence_t MIP6Address_sequence[] = {
  { "network"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mip6_network },
  { "tsapIdentifier"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multicast_IPv6_tsapIdentifier },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MIP6Address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MIP6Address, MIP6Address_sequence);

  return offset;
}
static int dissect_mIP6Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MIP6Address(tvb, offset, pinfo, tree, hf_h245_mIP6Address);
}


static const value_string h245_MulticastAddress_vals[] = {
  {   0, "iPAddress" },
  {   1, "iP6Address" },
  {   2, "nsap" },
  {   3, "nonStandardAddress" },
  { 0, NULL }
};

static const per_choice_t MulticastAddress_choice[] = {
  {   0, "iPAddress"                   , ASN1_EXTENSION_ROOT    , dissect_mIPAddress },
  {   1, "iP6Address"                  , ASN1_EXTENSION_ROOT    , dissect_mIP6Address },
  {   2, "nsap"                        , ASN1_NOT_EXTENSION_ROOT, dissect_nsap },
  {   3, "nonStandardAddress"          , ASN1_NOT_EXTENSION_ROOT, dissect_nonStandardAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_MulticastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_MulticastAddress, MulticastAddress_choice, "MulticastAddress",
                              NULL);

  return offset;
}
static int dissect_multicastAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MulticastAddress(tvb, offset, pinfo, tree, hf_h245_multicastAddress);
}


static const value_string h245_TransportAddress_vals[] = {
  {   0, "unicastAddress" },
  {   1, "multicastAddress" },
  { 0, NULL }
};

static const per_choice_t TransportAddress_choice[] = {
  {   0, "unicastAddress"              , ASN1_EXTENSION_ROOT    , dissect_unicastAddress },
  {   1, "multicastAddress"            , ASN1_EXTENSION_ROOT    , dissect_multicastAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_TransportAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_TransportAddress, TransportAddress_choice, "TransportAddress",
                              NULL);

  return offset;
}
static int dissect_localAreaAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TransportAddress(tvb, offset, pinfo, tree, hf_h245_localAreaAddress);
}
static int dissect_cm_mediaControlChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TransportAddress(tvb, offset, pinfo, tree, hf_h245_cm_mediaControlChannel);
}
static int dissect_signalAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TransportAddress(tvb, offset, pinfo, tree, hf_h245_signalAddress);
}


static int
dissect_h245_T_mediaChannel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {


      media_channel = TRUE;
  offset = dissect_h245_TransportAddress(tvb, offset, pinfo, tree, hf_index);



      media_channel = FALSE;
  return offset;
}
static int dissect_mediaChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mediaChannel(tvb, offset, pinfo, tree, hf_h245_mediaChannel);
}


static int
dissect_h245_T_mediaControlChannel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {


      media_control_channel = TRUE;
  offset = dissect_h245_TransportAddress(tvb, offset, pinfo, tree, hf_index);



      media_control_channel = FALSE;
  return offset;
}
static int dissect_mediaControlChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mediaControlChannel(tvb, offset, pinfo, tree, hf_h245_mediaControlChannel);
}



static int
dissect_h245_McuNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 192U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_mcuNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_McuNumber(tvb, offset, pinfo, tree, hf_h245_mcuNumber);
}



static int
dissect_h245_TerminalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           0U, 192U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_terminalNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalNumber(tvb, offset, pinfo, tree, hf_h245_terminalNumber);
}

static const per_sequence_t TerminalLabel_sequence[] = {
  { "mcuNumber"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_mcuNumber },
  { "terminalNumber"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_terminalNumber },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_TerminalLabel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_TerminalLabel, TerminalLabel_sequence);

  return offset;
}
static int dissect_destination(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_destination);
}
static int dissect_source(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_source);
}
static int dissect_terminalLabel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalLabel);
}
static int dissect_dropTerminal(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_dropTerminal);
}
static int dissect_requestTerminalID(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_requestTerminalID);
}
static int dissect_makeTerminalBroadcaster(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_makeTerminalBroadcaster);
}
static int dissect_sendThisSource(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_sendThisSource);
}
static int dissect_terminalListResponse_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalListResponse_item);
}
static int dissect_terminalNumberAssign(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalNumberAssign);
}
static int dissect_terminalJoinedConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalJoinedConference);
}
static int dissect_terminalLeftConference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalLeftConference);
}
static int dissect_terminalYouAreSeeing(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_terminalYouAreSeeing);
}
static int dissect_floorRequested(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_TerminalLabel(tvb, offset, pinfo, tree, hf_h245_floorRequested);
}


static const value_string h245_T_mediaPacketization_vals[] = {
  {   0, "h261aVideoPacketization" },
  {   1, "rtpPayloadType" },
  { 0, NULL }
};

static const per_choice_t T_mediaPacketization_choice[] = {
  {   0, "h261aVideoPacketization"     , ASN1_EXTENSION_ROOT    , dissect_h261aVideoPacketizationFlag },
  {   1, "rtpPayloadType"              , ASN1_NOT_EXTENSION_ROOT, dissect_rtpPayloadType },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_mediaPacketization(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_mediaPacketization, T_mediaPacketization_choice, "T_mediaPacketization",
                              NULL);

  return offset;
}
static int dissect_mediaPacketization(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_mediaPacketization(tvb, offset, pinfo, tree, hf_h245_mediaPacketization);
}

static const per_sequence_t H2250LogicalChannelParameters_sequence[] = {
  { "nonStandard"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandardParams },
  { "sessionID"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sessionID_0_255 },
  { "associatedSessionID"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_associatedSessionID },
  { "mediaChannel"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaChannel },
  { "mediaGuaranteedDelivery"     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaGuaranteedDelivery },
  { "mediaControlChannel"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaControlChannel },
  { "mediaControlGuaranteedDelivery", ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaControlGuaranteedDelivery },
  { "silenceSuppression"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_silenceSuppression },
  { "destination"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_destination },
  { "dynamicRTPPayloadType"       , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_dynamicRTPPayloadType },
  { "mediaPacketization"          , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_mediaPacketization },
  { "transportCapability"         , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_transportCapability },
  { "redundancyEncoding"          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_redundancyEncoding },
  { "source"                      , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_source },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H2250LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H2250LogicalChannelParameters, H2250LogicalChannelParameters_sequence);

  return offset;
}
static int dissect_h2250LogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H2250LogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_h2250LogicalChannelParameters);
}


static const value_string h245_OLC_forw_multiplexParameters_vals[] = {
  {   0, "h222LogicalChannelParameters" },
  {   1, "h223LogicalChannelParameters" },
  {   2, "v76LogicalChannelParameters" },
  {   3, "h2250LogicalChannelParameters" },
  {   4, "none" },
  { 0, NULL }
};

static const per_choice_t OLC_forw_multiplexParameters_choice[] = {
  {   0, "h222LogicalChannelParameters", ASN1_EXTENSION_ROOT    , dissect_h222LogicalChannelParameters },
  {   1, "h223LogicalChannelParameters", ASN1_EXTENSION_ROOT    , dissect_h223LogicalChannelParameters },
  {   2, "v76LogicalChannelParameters" , ASN1_EXTENSION_ROOT    , dissect_v76LogicalChannelParameters },
  {   3, "h2250LogicalChannelParameters", ASN1_NOT_EXTENSION_ROOT, dissect_h2250LogicalChannelParameters },
  {   4, "none"                        , ASN1_NOT_EXTENSION_ROOT, dissect_none },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_OLC_forw_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_OLC_forw_multiplexParameters, OLC_forw_multiplexParameters_choice, "OLC_forw_multiplexParameters",
                              NULL);

  return offset;
}
static int dissect_olc_forw_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OLC_forw_multiplexParameters(tvb, offset, pinfo, tree, hf_h245_olc_forw_multiplexParameters);
}

static const per_sequence_t T_forwardLogicalChannelParameters_sequence[] = {
  { "portNumber"                  , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_portNumber },
  { "dataType"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataType },
  { "multiplexParameters"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_olc_forw_multiplexParameters },
  { "forwardLogicalChannelDependency", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_forwardLogicalChannelDependency },
  { "replacementFor"              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_replacementFor },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_T_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_T_forwardLogicalChannelParameters, T_forwardLogicalChannelParameters_sequence);

  return offset;
}
static int dissect_forwardLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_forwardLogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_forwardLogicalChannelParameters);
}


static const value_string h245_OLC_rev_multiplexParameters_vals[] = {
  {   0, "h223LogicalChannelParameters" },
  {   1, "v76LogicalChannelParameters" },
  {   2, "h2250LogicalChannelParameters" },
  { 0, NULL }
};

static const per_choice_t OLC_rev_multiplexParameters_choice[] = {
  {   0, "h223LogicalChannelParameters", ASN1_EXTENSION_ROOT    , dissect_h223LogicalChannelParameters },
  {   1, "v76LogicalChannelParameters" , ASN1_EXTENSION_ROOT    , dissect_v76LogicalChannelParameters },
  {   2, "h2250LogicalChannelParameters", ASN1_NOT_EXTENSION_ROOT, dissect_h2250LogicalChannelParameters },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_OLC_rev_multiplexParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {


      media_channel = FALSE;
      media_control_channel = FALSE;

  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_OLC_rev_multiplexParameters, OLC_rev_multiplexParameters_choice, "OLC_rev_multiplexParameters",
                              NULL);

      if((!pinfo->fd->flags.visited) && ipv4_address!=0 && ipv4_port!=0 && rtp_handle){
            address src_addr;

            src_addr.type=AT_IPv4;
            src_addr.len=4;
            src_addr.data=(char *)&ipv4_address;

            rtp_add_address(pinfo, &src_addr, ipv4_port, 0, "H245", pinfo->fd->num, 0);
      }
      if((!pinfo->fd->flags.visited) && rtcp_ipv4_address!=0 && rtcp_ipv4_port!=0 && rtcp_handle){
            address src_addr;

            src_addr.type=AT_IPv4;
            src_addr.len=4;
            src_addr.data=(char *)&rtcp_ipv4_address;

            rtcp_add_address(pinfo, &src_addr, rtcp_ipv4_port, 0, "H245", pinfo->fd->num);
      }

  return offset;
}
static int dissect_olc_rev_multiplexParameter(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OLC_rev_multiplexParameters(tvb, offset, pinfo, tree, hf_h245_olc_rev_multiplexParameter);
}

static const per_sequence_t OLC_reverseLogicalChannelParameters_sequence[] = {
  { "dataType"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_dataType },
  { "multiplexParameters"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_olc_rev_multiplexParameter },
  { "reverseLogicalChannelDependency", ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_reverseLogicalChannelDependency },
  { "replacementFor"              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_replacementFor },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_OLC_reverseLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_OLC_reverseLogicalChannelParameters, OLC_reverseLogicalChannelParameters_sequence);

  return offset;
}
static int dissect_reverseLogicalChannelParameters(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OLC_reverseLogicalChannelParameters(tvb, offset, pinfo, tree, hf_h245_reverseLogicalChannelParameters);
}


static const value_string h245_T_distribution_vals[] = {
  {   0, "unicast" },
  {   1, "multicast" },
  { 0, NULL }
};

static const per_choice_t T_distribution_choice[] = {
  {   0, "unicast"                     , ASN1_EXTENSION_ROOT    , dissect_unicast },
  {   1, "multicast"                   , ASN1_EXTENSION_ROOT    , dissect_multicast },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_distribution(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_distribution, T_distribution_choice, "T_distribution",
                              NULL);

  return offset;
}
static int dissect_distribution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_distribution(tvb, offset, pinfo, tree, hf_h245_distribution);
}


static int
dissect_h245_T_e164Address(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_IA5String(tvb, offset, pinfo, tree, hf_index,
                                 -1, -1);

  return offset;
}
static int dissect_e164Address(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_e164Address(tvb, offset, pinfo, tree, hf_h245_e164Address);
}


static const value_string h245_T_networkAddress_vals[] = {
  {   0, "q2931Address" },
  {   1, "e164Address" },
  {   2, "localAreaAddress" },
  { 0, NULL }
};

static const per_choice_t T_networkAddress_choice[] = {
  {   0, "q2931Address"                , ASN1_EXTENSION_ROOT    , dissect_q2931Address },
  {   1, "e164Address"                 , ASN1_EXTENSION_ROOT    , dissect_e164Address },
  {   2, "localAreaAddress"            , ASN1_EXTENSION_ROOT    , dissect_localAreaAddress },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_networkAddress(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_networkAddress, T_networkAddress_choice, "T_networkAddress",
                              NULL);

  return offset;
}
static int dissect_networkAddress(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_networkAddress(tvb, offset, pinfo, tree, hf_h245_networkAddress);
}


static int
dissect_h245_OCTET_STRING_SIZE_1_255(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    1, 255,
                                    NULL, NULL);

  return offset;
}
static int dissect_externalReference(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_255(tvb, offset, pinfo, tree, hf_h245_externalReference);
}


static const value_string h245_T_t120SetupProcedure_vals[] = {
  {   0, "originateCall" },
  {   1, "waitForCall" },
  {   2, "issueQuery" },
  { 0, NULL }
};

static const per_choice_t T_t120SetupProcedure_choice[] = {
  {   0, "originateCall"               , ASN1_EXTENSION_ROOT    , dissect_originateCall },
  {   1, "waitForCall"                 , ASN1_EXTENSION_ROOT    , dissect_waitForCall },
  {   2, "issueQuery"                  , ASN1_EXTENSION_ROOT    , dissect_issueQuery },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_t120SetupProcedure(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_t120SetupProcedure, T_t120SetupProcedure_choice, "T_t120SetupProcedure",
                              NULL);

  return offset;
}
static int dissect_t120SetupProcedure(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_t120SetupProcedure(tvb, offset, pinfo, tree, hf_h245_t120SetupProcedure);
}

static const per_sequence_t NetworkAccessParameters_sequence[] = {
  { "distribution"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_distribution },
  { "networkAddress"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_networkAddress },
  { "associateConference"         , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_associateConference },
  { "externalReference"           , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_externalReference },
  { "t120SetupProcedure"          , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_t120SetupProcedure },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_NetworkAccessParameters(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_NetworkAccessParameters, NetworkAccessParameters_sequence);

  return offset;
}
static int dissect_separateStack(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_NetworkAccessParameters(tvb, offset, pinfo, tree, hf_h245_separateStack);
}


static int
dissect_h245_OCTET_STRING_SIZE_1_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_octet_string(tvb, offset, pinfo, tree, hf_index,
                                    1, 65535,
                                    NULL, NULL);

  return offset;
}
static int dissect_h235Key(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_65535(tvb, offset, pinfo, tree, hf_h245_h235Key);
}
static int dissect_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_65535(tvb, offset, pinfo, tree, hf_h245_value);
}
static int dissect_certificateResponse(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OCTET_STRING_SIZE_1_65535(tvb, offset, pinfo, tree, hf_h245_certificateResponse);
}


static int
dissect_h245_BIT_STRING_SIZE_1_65535(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_bit_string(tvb, offset, pinfo, tree, hf_index,
                                  1, 65535);

  return offset;
}
static int dissect_escrowValue(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_BIT_STRING_SIZE_1_65535(tvb, offset, pinfo, tree, hf_h245_escrowValue);
}

static const per_sequence_t EscrowData_sequence[] = {
  { "escrowID"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_escrowID },
  { "escrowValue"                 , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_escrowValue },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_EscrowData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_EscrowData, EscrowData_sequence);

  return offset;
}
static int dissect_escrowentry_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EscrowData(tvb, offset, pinfo, tree, hf_h245_escrowentry_item);
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_EscrowData(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_EscrowData, dissect_escrowentry_item,
                                               1, 256);

  return offset;
}
static int dissect_escrowentry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_EscrowData(tvb, offset, pinfo, tree, hf_h245_escrowentry);
}

static const per_sequence_t EncryptionSync_sequence[] = {
  { "nonStandard"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_nonStandard },
  { "synchFlag"                   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_synchFlag },
  { "h235Key"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h235Key },
  { "escrowentry"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_escrowentry },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_EncryptionSync(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_EncryptionSync, EncryptionSync_sequence);

  return offset;
}
static int dissect_encryptionSync(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionSync(tvb, offset, pinfo, tree, hf_h245_encryptionSync);
}
static int dissect_encryptionUpdate(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_EncryptionSync(tvb, offset, pinfo, tree, hf_h245_encryptionUpdate);
}

static const per_sequence_t OpenLogicalChannel_sequence[] = {
  { "forwardLogicalChannelNumber" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelNumber },
  { "forwardLogicalChannelParameters", ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelParameters },
  { "reverseLogicalChannelParameters", ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_reverseLogicalChannelParameters },
  { "separateStack"               , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_separateStack },
  { "encryptionSync"              , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_encryptionSync },
  { NULL, 0, 0, NULL }
};

int
dissect_h245_OpenLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_OpenLogicalChannel, OpenLogicalChannel_sequence);


  if (h245_pi != NULL) h245_pi->msg_type = H245_OpenLogChn;
  return offset;
}
static int dissect_openLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_OpenLogicalChannel(tvb, offset, pinfo, tree, hf_h245_openLogicalChannel);
}


static const value_string h245_T_source_vals[] = {
  {   0, "user" },
  {   1, "lcse" },
  { 0, NULL }
};

static const per_choice_t T_source_choice[] = {
  {   0, "user"                        , ASN1_NO_EXTENSIONS     , dissect_user },
  {   1, "lcse"                        , ASN1_NO_EXTENSIONS     , dissect_lcse },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_source(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_source, T_source_choice, "T_source",
                              NULL);

  return offset;
}
static int dissect_CloseLogicalChannel_source(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_source(tvb, offset, pinfo, tree, hf_h245_CloseLogicalChannel_source);
}


static const value_string h245_clc_reason_vals[] = {
  {   0, "unknown" },
  {   1, "reopen" },
  {   2, "reservationFailure" },
  { 0, NULL }
};

static const per_choice_t clc_reason_choice[] = {
  {   0, "unknown"                     , ASN1_EXTENSION_ROOT    , dissect_unknown },
  {   1, "reopen"                      , ASN1_EXTENSION_ROOT    , dissect_reopen },
  {   2, "reservationFailure"          , ASN1_EXTENSION_ROOT    , dissect_reservationFailure },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_clc_reason(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_clc_reason, clc_reason_choice, "clc_reason",
                              NULL);

  return offset;
}
static int dissect_clc_reason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_clc_reason(tvb, offset, pinfo, tree, hf_h245_clc_reason);
}

static const per_sequence_t CloseLogicalChannel_sequence[] = {
  { "forwardLogicalChannelNumber" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelNumber },
  { "source"                      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_CloseLogicalChannel_source },
  { "reason"                      , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_clc_reason },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_CloseLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_CloseLogicalChannel, CloseLogicalChannel_sequence);


  h245_pi->msg_type = H245_CloseLogChn;
  return offset;
}
static int dissect_closeLogicalChannel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_CloseLogicalChannel(tvb, offset, pinfo, tree, hf_h245_closeLogicalChannel);
}


static const value_string h245_T_reason_vals[] = {
  {   0, "unknown" },
  {   1, "normal" },
  {   2, "reopen" },
  {   3, "reservationFailure" },
  { 0, NULL }
};

static const per_choice_t T_reason_choice[] = {
  {   0, "unknown"                     , ASN1_EXTENSION_ROOT    , dissect_unknown },
  {   1, "normal"                      , ASN1_EXTENSION_ROOT    , dissect_normal },
  {   2, "reopen"                      , ASN1_EXTENSION_ROOT    , dissect_reopen },
  {   3, "reservationFailure"          , ASN1_EXTENSION_ROOT    , dissect_reservationFailure },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_reason(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_reason, T_reason_choice, "T_reason",
                              NULL);

  return offset;
}
static int dissect_reason(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_reason(tvb, offset, pinfo, tree, hf_h245_reason);
}

static const per_sequence_t RequestChannelClose_sequence[] = {
  { "forwardLogicalChannelNumber" , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_forwardLogicalChannelNumber },
  { "qosCapability"               , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_qosCapability },
  { "reason"                      , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_reason },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RequestChannelClose(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RequestChannelClose, RequestChannelClose_sequence);

  return offset;
}
static int dissect_requestChannelClose(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RequestChannelClose(tvb, offset, pinfo, tree, hf_h245_requestChannelClose);
}



static int
dissect_h245_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_integer(tvb, offset, pinfo, tree, hf_index,
                                           1U, 15U, NULL, NULL, FALSE);

  return offset;
}
static int dissect_multiplexTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_multiplexTableEntryNumber);
}
static int dissect_multiplexTableEntryNumber_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_multiplexTableEntryNumber_item);
}
static int dissect_entryNumbers_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_entryNumbers_item);
}


static int
dissect_h245_SEQUENCE_SIZE_2_255_OF_MultiplexElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_2_255_OF_MultiplexElement, dissect_subElementList_item,
                                               2, 255);

  return offset;
}
static int dissect_subElementList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_2_255_OF_MultiplexElement(tvb, offset, pinfo, tree, hf_h245_subElementList);
}


static const value_string h245_Me_type_vals[] = {
  {   0, "logicalChannelNumber" },
  {   1, "subElementList" },
  { 0, NULL }
};

static const per_choice_t Me_type_choice[] = {
  {   0, "logicalChannelNumber"        , ASN1_NO_EXTENSIONS     , dissect_logicalChannelNum },
  {   1, "subElementList"              , ASN1_NO_EXTENSIONS     , dissect_subElementList },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_Me_type(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_Me_type, Me_type_choice, "Me_type",
                              NULL);

  return offset;
}
static int dissect_Me_type(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Me_type(tvb, offset, pinfo, tree, hf_h245_Me_type);
}


static const value_string h245_ME_repeatCount_vals[] = {
  {   0, "finite" },
  {   1, "untilClosingFlag" },
  { 0, NULL }
};

static const per_choice_t ME_repeatCount_choice[] = {
  {   0, "finite"                      , ASN1_NO_EXTENSIONS     , dissect_finite_1_65535 },
  {   1, "untilClosingFlag"            , ASN1_NO_EXTENSIONS     , dissect_untilClosingFlag },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_ME_repeatCount(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_ME_repeatCount, ME_repeatCount_choice, "ME_repeatCount",
                              NULL);

  return offset;
}
static int dissect_me_repeatCount(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_ME_repeatCount(tvb, offset, pinfo, tree, hf_h245_me_repeatCount);
}

static const per_sequence_t MultiplexElement_sequence[] = {
  { "type"                        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_Me_type },
  { "repeatCount"                 , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_me_repeatCount },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplexElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplexElement, MultiplexElement_sequence);

  return offset;
}


static int
dissect_h245_SEQUENCE_SIZE_1_256_OF_MultiplexElement(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_sequence_of(tvb, offset, pinfo, tree, hf_index,
                                               ett_h245_SEQUENCE_SIZE_1_256_OF_MultiplexElement, dissect_elementList_item,
                                               1, 256);

  return offset;
}
static int dissect_elementList(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SEQUENCE_SIZE_1_256_OF_MultiplexElement(tvb, offset, pinfo, tree, hf_h245_elementList);
}

static const per_sequence_t MultiplexEntryDescriptor_sequence[] = {
  { "multiplexTableEntryNumber"   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_multiplexTableEntryNumber },
  { "elementList"                 , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_elementList },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplexEntryDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplexEntryDescriptor, MultiplexEntryDescriptor_sequence);

  return offset;
}
static int dissect_multiplexEntryDescriptors_item(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexEntryDescriptor(tvb, offset, pinfo, tree, hf_h245_multiplexEntryDescriptors_item);
}


static int
dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor, dissect_multiplexEntryDescriptors_item,
                                          1, 15);

  return offset;
}
static int dissect_multiplexEntryDescriptors(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_15_OF_MultiplexEntryDescriptor(tvb, offset, pinfo, tree, hf_h245_multiplexEntryDescriptors);
}

static const per_sequence_t MultiplexEntrySend_sequence[] = {
  { "sequenceNumber"              , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_sequenceNumber },
  { "multiplexEntryDescriptors"   , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_multiplexEntryDescriptors },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_MultiplexEntrySend(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_MultiplexEntrySend, MultiplexEntrySend_sequence);

  return offset;
}
static int dissect_multiplexEntrySend(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_MultiplexEntrySend(tvb, offset, pinfo, tree, hf_h245_multiplexEntrySend);
}


static int
dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_constrained_set_of(tvb, offset, pinfo, tree, hf_index,
                                          ett_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber, dissect_multiplexTableEntryNumber_item,
                                          1, 15);

  return offset;
}
static int dissect_multiplexTableEntryNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_multiplexTableEntryNumbers);
}
static int dissect_entryNumbers(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_SET_SIZE_1_15_OF_MultiplexTableEntryNumber(tvb, offset, pinfo, tree, hf_h245_entryNumbers);
}

static const per_sequence_t RequestMultiplexEntry_sequence[] = {
  { "entryNumbers"                , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_entryNumbers },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_RequestMultiplexEntry(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_RequestMultiplexEntry, RequestMultiplexEntry_sequence);

  return offset;
}
static int dissect_requestMultiplexEntry(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_RequestMultiplexEntry(tvb, offset, pinfo, tree, hf_h245_requestMultiplexEntry);
}


static const value_string h245_H261Resolution_vals[] = {
  {   0, "qcif" },
  {   1, "cif" },
  { 0, NULL }
};

static const per_choice_t H261Resolution_choice[] = {
  {   0, "qcif"                        , ASN1_NO_EXTENSIONS     , dissect_qcif },
  {   1, "cif"                         , ASN1_NO_EXTENSIONS     , dissect_cif },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_H261Resolution(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_H261Resolution, H261Resolution_choice, "H261Resolution",
                              NULL);

  return offset;
}
static int dissect_h261_resolution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H261Resolution(tvb, offset, pinfo, tree, hf_h245_h261_resolution);
}

static const per_sequence_t H261VideoMode_sequence[] = {
  { "resolution"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h261_resolution },
  { "bitRate"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_bitRate_1_19200 },
  { "stillImageTransmission"      , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_stillImageTransmission },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H261VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H261VideoMode, H261VideoMode_sequence);

  return offset;
}
static int dissect_h261VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H261VideoMode(tvb, offset, pinfo, tree, hf_h245_h261VideoMode);
}


static const value_string h245_T_profileAndLevel_vals[] = {
  {   0, "profileAndLevel-SPatML" },
  {   1, "profileAndLevel-MPatLL" },
  {   2, "profileAndLevel-MPatML" },
  {   3, "profileAndLevel-MPatH-14" },
  {   4, "profileAndLevel-MPatHL" },
  {   5, "profileAndLevel-SNRatLL" },
  {   6, "profileAndLevel-SNRatML" },
  {   7, "profileAndLevel-SpatialatH-14" },
  {   8, "profileAndLevel-HPatML" },
  {   9, "profileAndLevel-HPatH-14" },
  {  10, "profileAndLevel-HPatHL" },
  { 0, NULL }
};

static const per_choice_t T_profileAndLevel_choice[] = {
  {   0, "profileAndLevel-SPatML"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_SPatMLMode },
  {   1, "profileAndLevel-MPatLL"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_MPatLLMode },
  {   2, "profileAndLevel-MPatML"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_MPatMLMode },
  {   3, "profileAndLevel-MPatH-14"    , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_MPatH_14Mode },
  {   4, "profileAndLevel-MPatHL"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_MPatHLMode },
  {   5, "profileAndLevel-SNRatLL"     , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_SNRatLLMode },
  {   6, "profileAndLevel-SNRatML"     , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_SNRatMLMode },
  {   7, "profileAndLevel-SpatialatH-14", ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_SpatialatH_14Mode },
  {   8, "profileAndLevel-HPatML"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_HPatMLMode },
  {   9, "profileAndLevel-HPatH-14"    , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_HPatH_14Mode },
  {  10, "profileAndLevel-HPatHL"      , ASN1_EXTENSION_ROOT    , dissect_profileAndLevel_HPatHLMode },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_profileAndLevel(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_profileAndLevel, T_profileAndLevel_choice, "T_profileAndLevel",
                              NULL);

  return offset;
}
static int dissect_profileAndLevel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_T_profileAndLevel(tvb, offset, pinfo, tree, hf_h245_profileAndLevel);
}

static const per_sequence_t H262VideoMode_sequence[] = {
  { "profileAndLevel"             , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_profileAndLevel },
  { "videoBitRate"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_videoBitRate },
  { "vbvBufferSize"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_vbvBufferSize },
  { "samplesPerLine"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_samplesPerLine },
  { "linesPerFrame"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_linesPerFrame },
  { "framesPerSecond"             , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_framesPerSecond },
  { "luminanceSampleRate"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_luminanceSampleRate },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H262VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H262VideoMode, H262VideoMode_sequence);

  return offset;
}
static int dissect_h262VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H262VideoMode(tvb, offset, pinfo, tree, hf_h245_h262VideoMode);
}


static const value_string h245_H263Resolution_vals[] = {
  {   0, "sqcif" },
  {   1, "qcif" },
  {   2, "cif" },
  {   3, "cif4" },
  {   4, "cif16" },
  {   5, "custom" },
  { 0, NULL }
};

static const per_choice_t H263Resolution_choice[] = {
  {   0, "sqcif"                       , ASN1_EXTENSION_ROOT    , dissect_sqcif },
  {   1, "qcif"                        , ASN1_EXTENSION_ROOT    , dissect_qcif },
  {   2, "cif"                         , ASN1_EXTENSION_ROOT    , dissect_cif },
  {   3, "cif4"                        , ASN1_EXTENSION_ROOT    , dissect_cif4 },
  {   4, "cif16"                       , ASN1_EXTENSION_ROOT    , dissect_cif16 },
  {   5, "custom"                      , ASN1_NOT_EXTENSION_ROOT, dissect_custom_res },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_H263Resolution(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_H263Resolution, H263Resolution_choice, "H263Resolution",
                              NULL);

  return offset;
}
static int dissect_h263_resolution(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263Resolution(tvb, offset, pinfo, tree, hf_h245_h263_resolution);
}

static const per_sequence_t H263VideoMode_sequence[] = {
  { "resolution"                  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h263_resolution },
  { "bitRate"                     , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_bitRate_1_19200 },
  { "unrestrictedVector"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_unrestrictedVector },
  { "arithmeticCoding"            , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_arithmeticCoding },
  { "advancedPrediction"          , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_advancedPrediction },
  { "pbFrames"                    , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_pbFrames },
  { "errorCompensation"           , ASN1_NOT_EXTENSION_ROOT, ASN1_NOT_OPTIONAL, dissect_errorCompensation },
  { "enhancementLayerInfo"        , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_enhancementLayerInfo },
  { "h263Options"                 , ASN1_NOT_EXTENSION_ROOT, ASN1_OPTIONAL    , dissect_h263Options },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_H263VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_H263VideoMode, H263VideoMode_sequence);

  return offset;
}
static int dissect_h263VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_H263VideoMode(tvb, offset, pinfo, tree, hf_h245_h263VideoMode);
}

static const per_sequence_t IS11172VideoMode_sequence[] = {
  { "constrainedBitstream"        , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_constrainedBitstream },
  { "videoBitRate"                , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_videoBitRate },
  { "vbvBufferSize"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_vbvBufferSize },
  { "samplesPerLine"              , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_samplesPerLine },
  { "linesPerFrame"               , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_linesPerFrame },
  { "pictureRate"                 , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_pictureRate },
  { "luminanceSampleRate"         , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_luminanceSampleRate },
  { NULL, 0, 0, NULL }
};

static int
dissect_h245_IS11172VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_sequence(tvb, offset, pinfo, tree, hf_index,
                                ett_h245_IS11172VideoMode, IS11172VideoMode_sequence);

  return offset;
}
static int dissect_is11172VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_IS11172VideoMode(tvb, offset, pinfo, tree, hf_h245_is11172VideoMode);
}


static const value_string h245_VideoMode_vals[] = {
  {   0, "nonStandard" },
  {   1, "h261VideoMode" },
  {   2, "h262VideoMode" },
  {   3, "h263VideoMode" },
  {   4, "is11172VideoMode" },
  {   5, "genericVideoMode" },
  { 0, NULL }
};

static const per_choice_t VideoMode_choice[] = {
  {   0, "nonStandard"                 , ASN1_EXTENSION_ROOT    , dissect_nonStandard },
  {   1, "h261VideoMode"               , ASN1_EXTENSION_ROOT    , dissect_h261VideoMode },
  {   2, "h262VideoMode"               , ASN1_EXTENSION_ROOT    , dissect_h262VideoMode },
  {   3, "h263VideoMode"               , ASN1_EXTENSION_ROOT    , dissect_h263VideoMode },
  {   4, "is11172VideoMode"            , ASN1_EXTENSION_ROOT    , dissect_is11172VideoMode },
  {   5, "genericVideoMode"            , ASN1_NOT_EXTENSION_ROOT, dissect_genericVideoMode },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_VideoMode(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  guint32 value;

  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_VideoMode, VideoMode_choice, "VideoMode",
                              &value);
  codec_type = val_to_str(value, h245_VideoMode_vals, "<unknown>");
            if (h245_pi != NULL) g_snprintf(h245_pi->frame_label, 50, "%s %s", h245_pi->frame_label, val_to_str(value, h245_VideoMode_vals, "ukn"));

  return offset;
}
static int dissect_videoMode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_VideoMode(tvb, offset, pinfo, tree, hf_h245_videoMode);
}


static const value_string h245_Mode_g7231_vals[] = {
  {   0, "noSilenceSuppressionLowRate" },
  {   1, "noSilenceSuppressionHighRate" },
  {   2, "silenceSuppressionLowRate" },
  {   3, "silenceSuppressionHighRate" },
  { 0, NULL }
};

static const per_choice_t Mode_g7231_choice[] = {
  {   0, "noSilenceSuppressionLowRate" , ASN1_NO_EXTENSIONS     , dissect_noSilenceSuppressionLowRate },
  {   1, "noSilenceSuppressionHighRate", ASN1_NO_EXTENSIONS     , dissect_noSilenceSuppressionHighRate },
  {   2, "silenceSuppressionLowRate"   , ASN1_NO_EXTENSIONS     , dissect_silenceSuppressionLowRate },
  {   3, "silenceSuppressionHighRate"  , ASN1_NO_EXTENSIONS     , dissect_silenceSuppressionHighRate },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_Mode_g7231(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_Mode_g7231, Mode_g7231_choice, "Mode_g7231",
                              NULL);

  return offset;
}
static int dissect_g7231_mode(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) {
  return dissect_h245_Mode_g7231(tvb, offset, pinfo, tree, hf_h245_g7231_mode);
}


static const value_string h245_T_audioLayer_vals[] = {
  {   0, "audioLayer1" },
  {   1, "audioLayer2" },
  {   2, "audioLayer3" },
  { 0, NULL }
};

static const per_choice_t T_audioLayer_choice[] = {
  {   0, "audioLayer1"                 , ASN1_NO_EXTENSIONS     , dissect_audioLayer1Mode },
  {   1, "audioLayer2"                 , ASN1_NO_EXTENSIONS     , dissect_audioLayer2Mode },
  {   2, "audioLayer3"                 , ASN1_NO_EXTENSIONS     , dissect_audioLayer3Mode },
  { 0, NULL, 0, NULL }
};

static int
dissect_h245_T_audioLayer(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index) {
  offset = dissect_per_choice(tvb, offset, pinfo, tree, hf_index,
                              ett_h245_T_audioLayer, T_audioLayer_choice, "T_audioLayer",
                              NULL);

  return offset;
}
static int dissect_audioLayer(tvbuff_t *tvb, int offset, packet_info *pinfo,