#include <string.h> and/or #include <stdio.h> not needed.
[obnox/wireshark/wip.git] / epan / dissectors / packet-h282.c
1 /* Do not modify this file.                                                   */
2 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
3 /* packet-h282.c                                                              */
4 /* ../../tools/asn2wrs.py -p h282 -c ./h282.cnf -s ./packet-h282-template -D . RDC-PROTOCOL.asn */
5
6 /* Input file: packet-h282-template.c */
7
8 #line 1 "packet-h282-template.c"
9 /* packet-h282.c
10  * Routines for H.282 packet dissection
11  * 2007  Tomas Kukosa
12  *
13  * $Id$
14  *
15  * Wireshark - Network traffic analyzer
16  * By Gerald Combs <gerald@wireshark.org>
17  * Copyright 1998 Gerald Combs
18  *
19  * This program is free software; you can redistribute it and/or
20  * modify it under the terms of the GNU General Public License
21  * as published by the Free Software Foundation; either version 2
22  * of the License, or (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program; if not, write to the Free Software
31  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
32  */
33
34 #ifdef HAVE_CONFIG_H
35 # include "config.h"
36 #endif
37
38 #include <glib.h>
39 #include <epan/packet.h>
40 #include <epan/oids.h>
41 #include <epan/asn1.h>
42
43 #include "packet-per.h"
44
45 #define PNAME  "H.282 Remote Device Control"
46 #define PSNAME "RDC"
47 #define PFNAME "rdc"
48
49 /* Initialize the protocol and registered fields */
50 static int proto_h282 = -1;
51
52 /*--- Included file: packet-h282-hf.c ---*/
53 #line 1 "packet-h282-hf.c"
54 static int hf_h282_NonCollapsingCapabilities_PDU = -1;  /* NonCollapsingCapabilities */
55 static int hf_h282_RDCPDU_PDU = -1;               /* RDCPDU */
56 static int hf_h282_object = -1;                   /* OBJECT_IDENTIFIER */
57 static int hf_h282_h221NonStandard = -1;          /* H221NonStandardIdentifier */
58 static int hf_h282_key = -1;                      /* Key */
59 static int hf_h282_data = -1;                     /* OCTET_STRING */
60 static int hf_h282_h221nonStandard = -1;          /* H221NonStandardIdentifier */
61 static int hf_h282_camera = -1;                   /* NULL */
62 static int hf_h282_microphone = -1;               /* NULL */
63 static int hf_h282_streamPlayerRecorder = -1;     /* NULL */
64 static int hf_h282_slideProjector = -1;           /* NULL */
65 static int hf_h282_lightSource = -1;              /* NULL */
66 static int hf_h282_sourceCombiner = -1;           /* NULL */
67 static int hf_h282_nonStandardDevice = -1;        /* NonStandardIdentifier */
68 static int hf_h282_deviceID = -1;                 /* DeviceID */
69 static int hf_h282_audioSourceFlag = -1;          /* BOOLEAN */
70 static int hf_h282_audioSinkFlag = -1;            /* BOOLEAN */
71 static int hf_h282_videoSourceFlag = -1;          /* BOOLEAN */
72 static int hf_h282_videoSinkFlag = -1;            /* BOOLEAN */
73 static int hf_h282_remoteControlFlag = -1;        /* BOOLEAN */
74 static int hf_h282_instanceNumber = -1;           /* INTEGER_0_255 */
75 static int hf_h282_deviceName = -1;               /* TextString */
76 static int hf_h282_streamID = -1;                 /* StreamID */
77 static int hf_h282_videoStreamFlag = -1;          /* BOOLEAN */
78 static int hf_h282_sourceChangeFlag = -1;         /* BOOLEAN */
79 static int hf_h282_streamName = -1;               /* TextString */
80 static int hf_h282_standard = -1;                 /* INTEGER_0_65535 */
81 static int hf_h282_nonStandard = -1;              /* Key */
82 static int hf_h282_NonCollapsingCapabilities_item = -1;  /* NonCollapsingCapabilities_item */
83 static int hf_h282_capabilityID = -1;             /* CapabilityID */
84 static int hf_h282_applicationData = -1;          /* T_applicationData */
85 static int hf_h282_deviceList = -1;               /* SET_SIZE_0_127_OF_DeviceProfile */
86 static int hf_h282_deviceList_item = -1;          /* DeviceProfile */
87 static int hf_h282_streamList = -1;               /* SET_SIZE_0_127_OF_StreamProfile */
88 static int hf_h282_streamList_item = -1;          /* StreamProfile */
89 static int hf_h282_playing = -1;                  /* NULL */
90 static int hf_h282_recording = -1;                /* NULL */
91 static int hf_h282_pausedOnRecord = -1;           /* NULL */
92 static int hf_h282_pausedOnPlay = -1;             /* NULL */
93 static int hf_h282_rewinding = -1;                /* NULL */
94 static int hf_h282_fastForwarding = -1;           /* NULL */
95 static int hf_h282_searchingForwards = -1;        /* NULL */
96 static int hf_h282_searchingBackwards = -1;       /* NULL */
97 static int hf_h282_stopped = -1;                  /* NULL */
98 static int hf_h282_programUnavailable = -1;       /* NULL */
99 static int hf_h282_maxNumber = -1;                /* PresetNumber */
100 static int hf_h282_presetCapability = -1;         /* T_presetCapability */
101 static int hf_h282_presetCapability_item = -1;    /* T_presetCapability_item */
102 static int hf_h282_presetNumber = -1;             /* PresetNumber */
103 static int hf_h282_storeModeSupported = -1;       /* BOOLEAN */
104 static int hf_h282_presetTextLabel = -1;          /* DeviceText */
105 static int hf_h282_maxNumberOfFilters = -1;       /* INTEGER_2_255 */
106 static int hf_h282_filterTextLabel = -1;          /* T_filterTextLabel */
107 static int hf_h282_filterTextLabel_item = -1;     /* T_filterTextLabel_item */
108 static int hf_h282_filterNumber = -1;             /* INTEGER_1_255 */
109 static int hf_h282_filterTextLabel_01 = -1;       /* DeviceText */
110 static int hf_h282_maxNumberOfLens = -1;          /* INTEGER_2_255 */
111 static int hf_h282_accessoryTextLabel = -1;       /* T_accessoryTextLabel */
112 static int hf_h282_accessoryTextLabel_item = -1;  /* T_accessoryTextLabel_item */
113 static int hf_h282_lensNumber = -1;               /* INTEGER_1_255 */
114 static int hf_h282_lensTextLabel = -1;            /* DeviceText */
115 static int hf_h282_maxNumber_01 = -1;             /* INTEGER_1_10 */
116 static int hf_h282_lightTextLabel = -1;           /* T_lightTextLabel */
117 static int hf_h282_lightTextLabel_item = -1;      /* T_lightTextLabel_item */
118 static int hf_h282_lightNumber = -1;              /* INTEGER_1_10 */
119 static int hf_h282_lightLabel = -1;               /* DeviceText */
120 static int hf_h282_maxSpeed = -1;                 /* CameraPanSpeed */
121 static int hf_h282_minSpeed = -1;                 /* CameraPanSpeed */
122 static int hf_h282_speedStepSize = -1;            /* CameraPanSpeed */
123 static int hf_h282_maxSpeed_01 = -1;              /* CameraTiltSpeed */
124 static int hf_h282_minSpeed_01 = -1;              /* CameraTiltSpeed */
125 static int hf_h282_speedStepSize_01 = -1;         /* CameraTiltSpeed */
126 static int hf_h282_maxLeft = -1;                  /* INTEGER_M18000_0 */
127 static int hf_h282_maxRight = -1;                 /* INTEGER_0_18000 */
128 static int hf_h282_minStepSize = -1;              /* INTEGER_1_18000 */
129 static int hf_h282_maxDown = -1;                  /* INTEGER_M18000_0 */
130 static int hf_h282_maxUp = -1;                    /* INTEGER_0_18000 */
131 static int hf_h282_multiplierFactors = -1;        /* T_multiplierFactors */
132 static int hf_h282_multiplierFactors_item = -1;   /* INTEGER_10_1000 */
133 static int hf_h282_divisorFactors = -1;           /* T_divisorFactors */
134 static int hf_h282_divisorFactors_item = -1;      /* INTEGER_10_1000 */
135 static int hf_h282_numberOfDeviceInputs = -1;     /* INTEGER_2_64 */
136 static int hf_h282_numberOfDeviceRows = -1;       /* INTEGER_1_64 */
137 static int hf_h282_availableDevices = -1;         /* T_availableDevices */
138 static int hf_h282_availableDevices_item = -1;    /* T_availableDevices_item */
139 static int hf_h282_deviceClass = -1;              /* DeviceClass */
140 static int hf_h282_deviceIdentifier = -1;         /* DeviceID */
141 static int hf_h282_availableDevices_01 = -1;      /* T_availableDevices_01 */
142 static int hf_h282_availableDevices_item_01 = -1;  /* T_availableDevices_item_01 */
143 static int hf_h282_deviceStateSupported = -1;     /* NULL */
144 static int hf_h282_deviceDateSupported = -1;      /* NULL */
145 static int hf_h282_deviceTimeSupported = -1;      /* NULL */
146 static int hf_h282_devicePresetSupported = -1;    /* DevicePresetCapability */
147 static int hf_h282_irisModeSupported = -1;        /* NULL */
148 static int hf_h282_focusModeSupported = -1;       /* NULL */
149 static int hf_h282_pointingModeSupported = -1;    /* NULL */
150 static int hf_h282_cameraLensSupported = -1;      /* CameraLensCapability */
151 static int hf_h282_cameraFilterSupported = -1;    /* CameraFilterCapability */
152 static int hf_h282_homePositionSupported = -1;    /* NULL */
153 static int hf_h282_externalCameraLightSupported = -1;  /* ExternalCameraLightCapability */
154 static int hf_h282_clearCameraLensSupported = -1;  /* NULL */
155 static int hf_h282_cameraPanSpeedSupported = -1;  /* CameraPanSpeedCapability */
156 static int hf_h282_cameraTiltSpeedSupported = -1;  /* CameraTiltSpeedCapability */
157 static int hf_h282_backLightModeSupported = -1;   /* NULL */
158 static int hf_h282_backLightSettingSupported = -1;  /* MaxBacklight */
159 static int hf_h282_whiteBalanceSettingSupported = -1;  /* MaxWhiteBalance */
160 static int hf_h282_whiteBalanceModeSupported = -1;  /* NULL */
161 static int hf_h282_calibrateWhiteBalanceSupported = -1;  /* NULL */
162 static int hf_h282_focusImageSupported = -1;      /* NULL */
163 static int hf_h282_captureImageSupported = -1;    /* NULL */
164 static int hf_h282_panContinuousSupported = -1;   /* NULL */
165 static int hf_h282_tiltContinuousSupported = -1;  /* NULL */
166 static int hf_h282_zoomContinuousSupported = -1;  /* NULL */
167 static int hf_h282_focusContinuousSupported = -1;  /* NULL */
168 static int hf_h282_irisContinuousSupported = -1;  /* NULL */
169 static int hf_h282_zoomPositionSupported = -1;    /* MinZoomPositionSetSize */
170 static int hf_h282_focusPositionSupported = -1;   /* MinFocusPositionStepSize */
171 static int hf_h282_irisPositionSupported = -1;    /* MinIrisPositionStepSize */
172 static int hf_h282_panPositionSupported = -1;     /* PanPositionCapability */
173 static int hf_h282_tiltPositionSupported = -1;    /* TiltPositionCapability */
174 static int hf_h282_zoomMagnificationSupported = -1;  /* MinZoomMagnificationStepSize */
175 static int hf_h282_panViewSupported = -1;         /* NULL */
176 static int hf_h282_tiltViewSupported = -1;        /* NULL */
177 static int hf_h282_selectSlideSupported = -1;     /* MaxNumberOfSlides */
178 static int hf_h282_selectNextSlideSupported = -1;  /* NULL */
179 static int hf_h282_slideShowModeSupported = -1;   /* NULL */
180 static int hf_h282_playSlideShowSupported = -1;   /* NULL */
181 static int hf_h282_setSlideDisplayTimeSupported = -1;  /* MaxSlideDisplayTime */
182 static int hf_h282_continuousRewindSupported = -1;  /* NULL */
183 static int hf_h282_continuousFastForwardSupported = -1;  /* NULL */
184 static int hf_h282_searchBackwardsSupported = -1;  /* NULL */
185 static int hf_h282_searchForwardsSupported = -1;  /* NULL */
186 static int hf_h282_pauseSupported = -1;           /* NULL */
187 static int hf_h282_selectProgramSupported = -1;   /* MaxNumberOfPrograms */
188 static int hf_h282_nextProgramSupported = -1;     /* NULL */
189 static int hf_h282_gotoNormalPlayTimePointSupported = -1;  /* NULL */
190 static int hf_h282_readStreamPlayerStateSupported = -1;  /* NULL */
191 static int hf_h282_readProgramDurationSupported = -1;  /* NULL */
192 static int hf_h282_continuousPlayBackModeSupported = -1;  /* NULL */
193 static int hf_h282_playbackSpeedSupported = -1;   /* PlayBackSpeedCapability */
194 static int hf_h282_playSupported = -1;            /* NULL */
195 static int hf_h282_setAudioOutputStateSupported = -1;  /* NULL */
196 static int hf_h282_playToNormalPlayTimePointSupported = -1;  /* NULL */
197 static int hf_h282_recordSupported = -1;          /* NULL */
198 static int hf_h282_recordForDurationSupported = -1;  /* NULL */
199 static int hf_h282_configurableVideoInputsSupported = -1;  /* VideoInputsCapability */
200 static int hf_h282_videoInputsSupported = -1;     /* VideoInputsCapability */
201 static int hf_h282_configurableAudioInputsSupported = -1;  /* AudioInputsCapability */
202 static int hf_h282_audioInputsSupported = -1;     /* AudioInputsCapability */
203 static int hf_h282_deviceLockStateChangedSupported = -1;  /* NULL */
204 static int hf_h282_deviceAvailabilityChangedSupported = -1;  /* NULL */
205 static int hf_h282_cameraPannedToLimitSupported = -1;  /* NULL */
206 static int hf_h282_cameraTiltedToLimitSupported = -1;  /* NULL */
207 static int hf_h282_cameraZoomedToLimitSupported = -1;  /* NULL */
208 static int hf_h282_cameraFocusedToLimitSupported = -1;  /* NULL */
209 static int hf_h282_autoSlideShowFinishedSupported = -1;  /* NULL */
210 static int hf_h282_streamPlayerStateChangeSupported = -1;  /* NULL */
211 static int hf_h282_streamPlayerProgramChangeSupported = -1;  /* NULL */
212 static int hf_h282_nonStandardAttributeSupported = -1;  /* NonStandardParameter */
213 static int hf_h282_active = -1;                   /* NULL */
214 static int hf_h282_inactive = -1;                 /* NULL */
215 static int hf_h282_day = -1;                      /* Day */
216 static int hf_h282_month = -1;                    /* Month */
217 static int hf_h282_year = -1;                     /* Year */
218 static int hf_h282_hour = -1;                     /* Hour */
219 static int hf_h282_minute = -1;                   /* Minute */
220 static int hf_h282_mode = -1;                     /* T_mode */
221 static int hf_h282_store = -1;                    /* NULL */
222 static int hf_h282_activate = -1;                 /* NULL */
223 static int hf_h282_manual = -1;                   /* NULL */
224 static int hf_h282_auto = -1;                     /* NULL */
225 static int hf_h282_toggle = -1;                   /* NULL */
226 static int hf_h282_none = -1;                     /* NULL */
227 static int hf_h282_panDirection = -1;             /* T_panDirection */
228 static int hf_h282_left = -1;                     /* NULL */
229 static int hf_h282_right = -1;                    /* NULL */
230 static int hf_h282_stop = -1;                     /* NULL */
231 static int hf_h282_continue = -1;                 /* NULL */
232 static int hf_h282_timeOut = -1;                  /* INTEGER_50_1000 */
233 static int hf_h282_tiltDirection = -1;            /* T_tiltDirection */
234 static int hf_h282_up = -1;                       /* NULL */
235 static int hf_h282_down = -1;                     /* NULL */
236 static int hf_h282_zoomDirection = -1;            /* T_zoomDirection */
237 static int hf_h282_telescopic = -1;               /* NULL */
238 static int hf_h282_wide = -1;                     /* NULL */
239 static int hf_h282_focusDirection = -1;           /* T_focusDirection */
240 static int hf_h282_near = -1;                     /* NULL */
241 static int hf_h282_far = -1;                      /* NULL */
242 static int hf_h282_relative = -1;                 /* NULL */
243 static int hf_h282_absolute = -1;                 /* NULL */
244 static int hf_h282_zoomPosition = -1;             /* ZoomPosition */
245 static int hf_h282_positioningMode = -1;          /* PositioningMode */
246 static int hf_h282_focusPosition = -1;            /* FocusPosition */
247 static int hf_h282_irisPosition = -1;             /* IrisPosition */
248 static int hf_h282_panPosition = -1;              /* PanPosition */
249 static int hf_h282_tiltPosition = -1;             /* TiltPosition */
250 static int hf_h282_next = -1;                     /* NULL */
251 static int hf_h282_previous = -1;                 /* NULL */
252 static int hf_h282_start = -1;                    /* NULL */
253 static int hf_h282_pause = -1;                    /* NULL */
254 static int hf_h282_hours = -1;                    /* INTEGER_0_24 */
255 static int hf_h282_minutes = -1;                  /* INTEGER_0_59 */
256 static int hf_h282_seconds = -1;                  /* INTEGER_0_59 */
257 static int hf_h282_microseconds = -1;             /* INTEGER_0_99999 */
258 static int hf_h282_scaleFactor = -1;              /* INTEGER_10_1000 */
259 static int hf_h282_multiplyFactor = -1;           /* BOOLEAN */
260 static int hf_h282_inputDevices = -1;             /* T_inputDevices */
261 static int hf_h282_inputDevices_item = -1;        /* T_inputDevices_item */
262 static int hf_h282_setDeviceState = -1;           /* DeviceState */
263 static int hf_h282_setDeviceDate = -1;            /* DeviceDate */
264 static int hf_h282_setDeviceTime = -1;            /* DeviceTime */
265 static int hf_h282_setDevicePreset = -1;          /* DevicePreset */
266 static int hf_h282_setIrisMode = -1;              /* Mode */
267 static int hf_h282_setFocusMode = -1;             /* Mode */
268 static int hf_h282_setBackLightMode = -1;         /* Mode */
269 static int hf_h282_setPointingMode = -1;          /* PointingToggle */
270 static int hf_h282_selectCameraLens = -1;         /* CameraLensNumber */
271 static int hf_h282_selectCameraFilter = -1;       /* CameraFilterNumber */
272 static int hf_h282_gotoHomePosition = -1;         /* NULL */
273 static int hf_h282_selectExternalLight = -1;      /* SelectExternalLight */
274 static int hf_h282_clearCameraLens = -1;          /* NULL */
275 static int hf_h282_setCameraPanSpeed = -1;        /* CameraPanSpeed */
276 static int hf_h282_setCameraTiltSpeed = -1;       /* CameraTiltSpeed */
277 static int hf_h282_setBackLight = -1;             /* BackLight */
278 static int hf_h282_setWhiteBalance = -1;          /* WhiteBalance */
279 static int hf_h282_setWhiteBalanceMode = -1;      /* Mode */
280 static int hf_h282_calibrateWhiteBalance = -1;    /* NULL */
281 static int hf_h282_focusImage = -1;               /* NULL */
282 static int hf_h282_captureImage = -1;             /* NULL */
283 static int hf_h282_panContinuous = -1;            /* PanContinuous */
284 static int hf_h282_tiltContinuous = -1;           /* TiltContinuous */
285 static int hf_h282_zoomContinuous = -1;           /* ZoomContinuous */
286 static int hf_h282_focusContinuous = -1;          /* FocusContinuous */
287 static int hf_h282_setZoomPosition = -1;          /* SetZoomPosition */
288 static int hf_h282_setFocusPosition = -1;         /* SetFocusPosition */
289 static int hf_h282_setIrisPosition = -1;          /* SetIrisPosition */
290 static int hf_h282_setPanPosition = -1;           /* SetPanPosition */
291 static int hf_h282_setTiltPosition = -1;          /* SetTiltPosition */
292 static int hf_h282_setZoomMagnification = -1;     /* ZoomMagnification */
293 static int hf_h282_setPanView = -1;               /* PanView */
294 static int hf_h282_setTiltView = -1;              /* TiltView */
295 static int hf_h282_selectSlide = -1;              /* SlideNumber */
296 static int hf_h282_selectNextSlide = -1;          /* SelectDirection */
297 static int hf_h282_playAutoSlideShow = -1;        /* AutoSlideShowControl */
298 static int hf_h282_setAutoSlideDisplayTime = -1;  /* AutoSlideDisplayTime */
299 static int hf_h282_continuousRewindControl = -1;  /* BOOLEAN */
300 static int hf_h282_continuousFastForwardControl = -1;  /* BOOLEAN */
301 static int hf_h282_searchBackwardsControl = -1;   /* BOOLEAN */
302 static int hf_h282_searchForwardsControl = -1;    /* BOOLEAN */
303 static int hf_h282_pause_01 = -1;                 /* BOOLEAN */
304 static int hf_h282_selectProgram = -1;            /* ProgramNumber */
305 static int hf_h282_nextProgramSelect = -1;        /* SelectDirection */
306 static int hf_h282_gotoNormalPlayTimePoint = -1;  /* ProgramDuration */
307 static int hf_h282_continuousPlayBackMode = -1;   /* BOOLEAN */
308 static int hf_h282_setPlaybackSpeed = -1;         /* PlaybackSpeed */
309 static int hf_h282_play = -1;                     /* BOOLEAN */
310 static int hf_h282_setAudioOutputMute = -1;       /* BOOLEAN */
311 static int hf_h282_playToNormalPlayTimePoint = -1;  /* ProgramDuration */
312 static int hf_h282_record = -1;                   /* BOOLEAN */
313 static int hf_h282_recordForDuration = -1;        /* RecordForDuration */
314 static int hf_h282_configureVideoInputs = -1;     /* DeviceInputs */
315 static int hf_h282_configureAudioInputs = -1;     /* DeviceInputs */
316 static int hf_h282_nonStandardControl = -1;       /* NonStandardParameter */
317 static int hf_h282_getDeviceState = -1;           /* NULL */
318 static int hf_h282_getDeviceDate = -1;            /* NULL */
319 static int hf_h282_getDeviceTime = -1;            /* NULL */
320 static int hf_h282_getdevicePreset = -1;          /* NULL */
321 static int hf_h282_getIrisMode = -1;              /* NULL */
322 static int hf_h282_getFocusMode = -1;             /* NULL */
323 static int hf_h282_getBacklightMode = -1;         /* NULL */
324 static int hf_h282_getPointingMode = -1;          /* NULL */
325 static int hf_h282_getCameraLens = -1;            /* NULL */
326 static int hf_h282_getCameraFilter = -1;          /* NULL */
327 static int hf_h282_getExternalLight = -1;         /* NULL */
328 static int hf_h282_getCameraPanSpeed = -1;        /* NULL */
329 static int hf_h282_getCameraTiltSpeed = -1;       /* NULL */
330 static int hf_h282_getBackLightMode = -1;         /* NULL */
331 static int hf_h282_getBackLight = -1;             /* NULL */
332 static int hf_h282_getWhiteBalance = -1;          /* NULL */
333 static int hf_h282_getWhiteBalanceMode = -1;      /* NULL */
334 static int hf_h282_getZoomPosition = -1;          /* NULL */
335 static int hf_h282_getFocusPosition = -1;         /* NULL */
336 static int hf_h282_getIrisPosition = -1;          /* NULL */
337 static int hf_h282_getPanPosition = -1;           /* NULL */
338 static int hf_h282_getTiltPosition = -1;          /* NULL */
339 static int hf_h282_getSelectedSlide = -1;         /* NULL */
340 static int hf_h282_getAutoSlideDisplayTime = -1;  /* NULL */
341 static int hf_h282_getSelectedProgram = -1;       /* NULL */
342 static int hf_h282_getStreamPlayerState = -1;     /* NULL */
343 static int hf_h282_getCurrentProgramDuration = -1;  /* NULL */
344 static int hf_h282_getPlaybackSpeed = -1;         /* NULL */
345 static int hf_h282_getAudioOutputState = -1;      /* NULL */
346 static int hf_h282_getConfigurableVideoInputs = -1;  /* NULL */
347 static int hf_h282_getVideoInputs = -1;           /* NULL */
348 static int hf_h282_getConfigurableAudioInputs = -1;  /* NULL */
349 static int hf_h282_getAudioInputs = -1;           /* NULL */
350 static int hf_h282_getNonStandardStatus = -1;     /* NonStandardIdentifier */
351 static int hf_h282_deviceState = -1;              /* DeviceState */
352 static int hf_h282_unknown = -1;                  /* NULL */
353 static int hf_h282_currentDay = -1;               /* T_currentDay */
354 static int hf_h282_currentMonth = -1;             /* T_currentMonth */
355 static int hf_h282_currentYear = -1;              /* T_currentYear */
356 static int hf_h282_currentHour = -1;              /* T_currentHour */
357 static int hf_h282_currentMinute = -1;            /* T_currentMinute */
358 static int hf_h282_preset = -1;                   /* PresetNumber */
359 static int hf_h282_mode_01 = -1;                  /* Mode */
360 static int hf_h282_automatic = -1;                /* NULL */
361 static int hf_h282_lensNumber_01 = -1;            /* CameraLensNumber */
362 static int hf_h282_lensNumber_02 = -1;            /* CameraFilterNumber */
363 static int hf_h282_speed = -1;                    /* CameraPanSpeed */
364 static int hf_h282_speed_01 = -1;                 /* CameraTiltSpeed */
365 static int hf_h282_backLight = -1;                /* BackLight */
366 static int hf_h282_whiteBalance = -1;             /* WhiteBalance */
367 static int hf_h282_slide = -1;                    /* SlideNumber */
368 static int hf_h282_time = -1;                     /* AutoSlideDisplayTime */
369 static int hf_h282_program = -1;                  /* ProgramNumber */
370 static int hf_h282_state = -1;                    /* StreamPlayerState */
371 static int hf_h282_speed_02 = -1;                 /* PlaybackSpeed */
372 static int hf_h282_mute = -1;                     /* BOOLEAN */
373 static int hf_h282_currentdeviceState = -1;       /* CurrentDeviceState */
374 static int hf_h282_currentDeviceDate = -1;        /* CurrentDeviceDate */
375 static int hf_h282_currentDeviceTime = -1;        /* CurrentDeviceTime */
376 static int hf_h282_currentDevicePreset = -1;      /* CurrentDevicePreset */
377 static int hf_h282_currentIrisMode = -1;          /* CurrentMode */
378 static int hf_h282_currentFocusMode = -1;         /* CurrentMode */
379 static int hf_h282_currentBackLightMode = -1;     /* CurrentMode */
380 static int hf_h282_currentPointingMode = -1;      /* CurrentPointingMode */
381 static int hf_h282_currentCameraLens = -1;        /* CurrentCameraLensNumber */
382 static int hf_h282_currentCameraFilter = -1;      /* CurrentCameraFilterNumber */
383 static int hf_h282_currentExternalLight = -1;     /* CurrentExternalLight */
384 static int hf_h282_currentCameraPanSpeed = -1;    /* CurrentCameraPanSpeed */
385 static int hf_h282_currentCameraTiltSpeed = -1;   /* CurrentCameraTiltSpeed */
386 static int hf_h282_currentBackLight = -1;         /* CurrentBackLight */
387 static int hf_h282_currentWhiteBalance = -1;      /* CurrentWhiteBalance */
388 static int hf_h282_currentWhiteBalanceMode = -1;  /* CurrentMode */
389 static int hf_h282_currentZoomPosition = -1;      /* CurrentZoomPosition */
390 static int hf_h282_currentFocusPosition = -1;     /* CurrentFocusPosition */
391 static int hf_h282_currentIrisPosition = -1;      /* CurrentIrisPosition */
392 static int hf_h282_currentPanPosition = -1;       /* CurrentPanPosition */
393 static int hf_h282_currentTiltPosition = -1;      /* CurrentTiltPosition */
394 static int hf_h282_currentSlide = -1;             /* CurrentSlide */
395 static int hf_h282_currentAutoSlideDisplayTime = -1;  /* CurrentAutoSlideDisplayTime */
396 static int hf_h282_currentSelectedProgram = -1;   /* CurrentSelectedProgram */
397 static int hf_h282_currentstreamPlayerState = -1;  /* CurrentStreamPlayerState */
398 static int hf_h282_currentProgramDuration = -1;   /* ProgramDuration */
399 static int hf_h282_currentPlaybackSpeed = -1;     /* CurrentPlaybackSpeed */
400 static int hf_h282_currentAudioOutputMute = -1;   /* CurrentAudioOutputMute */
401 static int hf_h282_configurableVideoInputs = -1;  /* DeviceInputs */
402 static int hf_h282_videoInputs = -1;              /* DeviceInputs */
403 static int hf_h282_configurableAudioInputs = -1;  /* DeviceInputs */
404 static int hf_h282_audioInputs = -1;              /* DeviceInputs */
405 static int hf_h282_nonStandardStatus = -1;        /* NonStandardParameter */
406 static int hf_h282_requestDeviceLockChanged = -1;  /* NULL */
407 static int hf_h282_requestDeviceAvailabilityChanged = -1;  /* NULL */
408 static int hf_h282_requestCameraPannedToLimit = -1;  /* NULL */
409 static int hf_h282_requestCameraTiltedToLimit = -1;  /* NULL */
410 static int hf_h282_requestCameraZoomedToLimit = -1;  /* NULL */
411 static int hf_h282_requestCameraFocusedToLimit = -1;  /* NULL */
412 static int hf_h282_requestAutoSlideShowFinished = -1;  /* NULL */
413 static int hf_h282_requestStreamPlayerStateChange = -1;  /* NULL */
414 static int hf_h282_requestStreamPlayerProgramChange = -1;  /* NULL */
415 static int hf_h282_requestNonStandardEvent = -1;  /* NonStandardIdentifier */
416 static int hf_h282_deviceLockChanged = -1;        /* BOOLEAN */
417 static int hf_h282_deviceAvailabilityChanged = -1;  /* BOOLEAN */
418 static int hf_h282_cameraPannedToLimit = -1;      /* CameraPannedToLimit */
419 static int hf_h282_cameraTiltedToLimit = -1;      /* CameraTiltedToLimit */
420 static int hf_h282_cameraZoomedToLimit = -1;      /* CameraZoomedToLimit */
421 static int hf_h282_cameraFocusedToLimit = -1;     /* CameraFocusedToLimit */
422 static int hf_h282_autoSlideShowFinished = -1;    /* NULL */
423 static int hf_h282_streamPlayerStateChange = -1;  /* StreamPlayerState */
424 static int hf_h282_streamPlayerProgramChange = -1;  /* ProgramNumber */
425 static int hf_h282_nonStandardEvent = -1;         /* NonStandardParameter */
426 static int hf_h282_requestHandle = -1;            /* Handle */
427 static int hf_h282_streamIdentifier = -1;         /* StreamID */
428 static int hf_h282_result = -1;                   /* T_result */
429 static int hf_h282_successful = -1;               /* NULL */
430 static int hf_h282_requestDenied = -1;            /* NULL */
431 static int hf_h282_deviceUnavailable = -1;        /* NULL */
432 static int hf_h282_invalidStreamID = -1;          /* NULL */
433 static int hf_h282_currentDeviceIsLocked = -1;    /* NULL */
434 static int hf_h282_deviceIncompatible = -1;       /* NULL */
435 static int hf_h282_sourceEventNotify = -1;        /* BOOLEAN */
436 static int hf_h282_result_01 = -1;                /* T_result_01 */
437 static int hf_h282_eventsNotSupported = -1;       /* NULL */
438 static int hf_h282_deviceAttributeList = -1;      /* SET_OF_DeviceAttribute */
439 static int hf_h282_deviceAttributeList_item = -1;  /* DeviceAttribute */
440 static int hf_h282_result_02 = -1;                /* T_result_02 */
441 static int hf_h282_unknownDevice = -1;            /* NULL */
442 static int hf_h282_lockFlag = -1;                 /* BOOLEAN */
443 static int hf_h282_result_03 = -1;                /* T_result_03 */
444 static int hf_h282_lockingNotSupported = -1;      /* NULL */
445 static int hf_h282_deviceAlreadyLocked = -1;      /* NULL */
446 static int hf_h282_result_04 = -1;                /* T_result_04 */
447 static int hf_h282_lockRequired = -1;             /* NULL */
448 static int hf_h282_lockNotRequired = -1;          /* NULL */
449 static int hf_h282_controlAttributeList = -1;     /* SET_SIZE_1_8_OF_ControlAttribute */
450 static int hf_h282_controlAttributeList_item = -1;  /* ControlAttribute */
451 static int hf_h282_statusAttributeIdentifierList = -1;  /* SET_SIZE_1_16_OF_StatusAttributeIdentifier */
452 static int hf_h282_statusAttributeIdentifierList_item = -1;  /* StatusAttributeIdentifier */
453 static int hf_h282_statusAttributeList = -1;      /* SET_SIZE_1_16_OF_StatusAttribute */
454 static int hf_h282_statusAttributeList_item = -1;  /* StatusAttribute */
455 static int hf_h282_result_05 = -1;                /* T_result_05 */
456 static int hf_h282_deviceAttributeError = -1;     /* NULL */
457 static int hf_h282_deviceEventIdentifierList = -1;  /* SET_OF_DeviceEventIdentifier */
458 static int hf_h282_deviceEventIdentifierList_item = -1;  /* DeviceEventIdentifier */
459 static int hf_h282_result_06 = -1;                /* T_result_06 */
460 static int hf_h282_deviceEventList = -1;          /* SET_SIZE_1_8_OF_DeviceEvent */
461 static int hf_h282_deviceEventList_item = -1;     /* DeviceEvent */
462 static int hf_h282_nonStandardData = -1;          /* NonStandardParameter */
463 static int hf_h282_request = -1;                  /* RequestPDU */
464 static int hf_h282_response = -1;                 /* ResponsePDU */
465 static int hf_h282_indication = -1;               /* IndicationPDU */
466 static int hf_h282_sourceSelectRequest = -1;      /* SourceSelectRequest */
467 static int hf_h282_sourceEventsRequest = -1;      /* SourceEventsRequest */
468 static int hf_h282_deviceAttributeRequest = -1;   /* DeviceAttributeRequest */
469 static int hf_h282_deviceLockRequest = -1;        /* DeviceLockRequest */
470 static int hf_h282_deviceLockEnquireRequest = -1;  /* DeviceLockEnquireRequest */
471 static int hf_h282_deviceControlRequest = -1;     /* DeviceControlRequest */
472 static int hf_h282_deviceStatusEnquireRequest = -1;  /* DeviceStatusEnquireRequest */
473 static int hf_h282_configureDeviceEventsRequest = -1;  /* ConfigureDeviceEventsRequest */
474 static int hf_h282_nonStandardRequest = -1;       /* NonStandardPDU */
475 static int hf_h282_sourceSelectResponse = -1;     /* SourceSelectResponse */
476 static int hf_h282_sourceEventsResponse = -1;     /* SourceEventsResponse */
477 static int hf_h282_deviceAttributeResponse = -1;  /* DeviceAttributeResponse */
478 static int hf_h282_deviceLockResponse = -1;       /* DeviceLockResponse */
479 static int hf_h282_deviceLockEnquireResponse = -1;  /* DeviceLockEnquireResponse */
480 static int hf_h282_deviceStatusEnquireResponse = -1;  /* DeviceStatusEnquireResponse */
481 static int hf_h282_configureDeviceEventsResponse = -1;  /* ConfigureDeviceEventsResponse */
482 static int hf_h282_nonStandardResponse = -1;      /* NonStandardPDU */
483 static int hf_h282_sourceChangeEventIndication = -1;  /* SourceChangeEventIndication */
484 static int hf_h282_deviceLockTerminatedIndication = -1;  /* DeviceLockTerminatedIndication */
485 static int hf_h282_deviceEventNotifyIndication = -1;  /* DeviceEventNotifyIndication */
486 static int hf_h282_nonStandardIndication = -1;    /* NonStandardPDU */
487
488 /*--- End of included file: packet-h282-hf.c ---*/
489 #line 44 "packet-h282-template.c"
490
491 /* Initialize the subtree pointers */
492 static int ett_h282 = -1;
493
494 /*--- Included file: packet-h282-ett.c ---*/
495 #line 1 "packet-h282-ett.c"
496 static gint ett_h282_Key = -1;
497 static gint ett_h282_NonStandardParameter = -1;
498 static gint ett_h282_NonStandardIdentifier = -1;
499 static gint ett_h282_DeviceClass = -1;
500 static gint ett_h282_DeviceProfile = -1;
501 static gint ett_h282_StreamProfile = -1;
502 static gint ett_h282_CapabilityID = -1;
503 static gint ett_h282_NonCollapsingCapabilities = -1;
504 static gint ett_h282_NonCollapsingCapabilities_item = -1;
505 static gint ett_h282_T_applicationData = -1;
506 static gint ett_h282_SET_SIZE_0_127_OF_DeviceProfile = -1;
507 static gint ett_h282_SET_SIZE_0_127_OF_StreamProfile = -1;
508 static gint ett_h282_StreamPlayerState = -1;
509 static gint ett_h282_DevicePresetCapability = -1;
510 static gint ett_h282_T_presetCapability = -1;
511 static gint ett_h282_T_presetCapability_item = -1;
512 static gint ett_h282_CameraFilterCapability = -1;
513 static gint ett_h282_T_filterTextLabel = -1;
514 static gint ett_h282_T_filterTextLabel_item = -1;
515 static gint ett_h282_CameraLensCapability = -1;
516 static gint ett_h282_T_accessoryTextLabel = -1;
517 static gint ett_h282_T_accessoryTextLabel_item = -1;
518 static gint ett_h282_ExternalCameraLightCapability = -1;
519 static gint ett_h282_T_lightTextLabel = -1;
520 static gint ett_h282_T_lightTextLabel_item = -1;
521 static gint ett_h282_CameraPanSpeedCapability = -1;
522 static gint ett_h282_CameraTiltSpeedCapability = -1;
523 static gint ett_h282_PanPositionCapability = -1;
524 static gint ett_h282_TiltPositionCapability = -1;
525 static gint ett_h282_PlayBackSpeedCapability = -1;
526 static gint ett_h282_T_multiplierFactors = -1;
527 static gint ett_h282_T_divisorFactors = -1;
528 static gint ett_h282_VideoInputsCapability = -1;
529 static gint ett_h282_T_availableDevices = -1;
530 static gint ett_h282_T_availableDevices_item = -1;
531 static gint ett_h282_AudioInputsCapability = -1;
532 static gint ett_h282_T_availableDevices_01 = -1;
533 static gint ett_h282_T_availableDevices_item_01 = -1;
534 static gint ett_h282_DeviceAttribute = -1;
535 static gint ett_h282_DeviceState = -1;
536 static gint ett_h282_DeviceDate = -1;
537 static gint ett_h282_DeviceTime = -1;
538 static gint ett_h282_DevicePreset = -1;
539 static gint ett_h282_T_mode = -1;
540 static gint ett_h282_Mode = -1;
541 static gint ett_h282_PointingToggle = -1;
542 static gint ett_h282_SelectExternalLight = -1;
543 static gint ett_h282_PanContinuous = -1;
544 static gint ett_h282_T_panDirection = -1;
545 static gint ett_h282_TiltContinuous = -1;
546 static gint ett_h282_T_tiltDirection = -1;
547 static gint ett_h282_ZoomContinuous = -1;
548 static gint ett_h282_T_zoomDirection = -1;
549 static gint ett_h282_FocusContinuous = -1;
550 static gint ett_h282_T_focusDirection = -1;
551 static gint ett_h282_PositioningMode = -1;
552 static gint ett_h282_SetZoomPosition = -1;
553 static gint ett_h282_SetFocusPosition = -1;
554 static gint ett_h282_SetIrisPosition = -1;
555 static gint ett_h282_SetPanPosition = -1;
556 static gint ett_h282_SetTiltPosition = -1;
557 static gint ett_h282_SelectDirection = -1;
558 static gint ett_h282_AutoSlideShowControl = -1;
559 static gint ett_h282_ProgramDuration = -1;
560 static gint ett_h282_PlaybackSpeed = -1;
561 static gint ett_h282_RecordForDuration = -1;
562 static gint ett_h282_DeviceInputs = -1;
563 static gint ett_h282_T_inputDevices = -1;
564 static gint ett_h282_T_inputDevices_item = -1;
565 static gint ett_h282_ControlAttribute = -1;
566 static gint ett_h282_StatusAttributeIdentifier = -1;
567 static gint ett_h282_CurrentDeviceState = -1;
568 static gint ett_h282_CurrentDeviceDate = -1;
569 static gint ett_h282_T_currentDay = -1;
570 static gint ett_h282_T_currentMonth = -1;
571 static gint ett_h282_T_currentYear = -1;
572 static gint ett_h282_CurrentDeviceTime = -1;
573 static gint ett_h282_T_currentHour = -1;
574 static gint ett_h282_T_currentMinute = -1;
575 static gint ett_h282_CurrentDevicePreset = -1;
576 static gint ett_h282_CurrentMode = -1;
577 static gint ett_h282_CurrentPointingMode = -1;
578 static gint ett_h282_CurrentCameraLensNumber = -1;
579 static gint ett_h282_CurrentCameraFilterNumber = -1;
580 static gint ett_h282_CurrentExternalLight = -1;
581 static gint ett_h282_CurrentCameraPanSpeed = -1;
582 static gint ett_h282_CurrentCameraTiltSpeed = -1;
583 static gint ett_h282_CurrentBackLight = -1;
584 static gint ett_h282_CurrentWhiteBalance = -1;
585 static gint ett_h282_CurrentZoomPosition = -1;
586 static gint ett_h282_CurrentFocusPosition = -1;
587 static gint ett_h282_CurrentIrisPosition = -1;
588 static gint ett_h282_CurrentPanPosition = -1;
589 static gint ett_h282_CurrentTiltPosition = -1;
590 static gint ett_h282_CurrentSlide = -1;
591 static gint ett_h282_CurrentAutoSlideDisplayTime = -1;
592 static gint ett_h282_CurrentSelectedProgram = -1;
593 static gint ett_h282_CurrentStreamPlayerState = -1;
594 static gint ett_h282_CurrentPlaybackSpeed = -1;
595 static gint ett_h282_CurrentAudioOutputMute = -1;
596 static gint ett_h282_StatusAttribute = -1;
597 static gint ett_h282_DeviceEventIdentifier = -1;
598 static gint ett_h282_CameraPannedToLimit = -1;
599 static gint ett_h282_CameraTiltedToLimit = -1;
600 static gint ett_h282_CameraZoomedToLimit = -1;
601 static gint ett_h282_CameraFocusedToLimit = -1;
602 static gint ett_h282_DeviceEvent = -1;
603 static gint ett_h282_SourceSelectRequest = -1;
604 static gint ett_h282_SourceSelectResponse = -1;
605 static gint ett_h282_T_result = -1;
606 static gint ett_h282_SourceEventsRequest = -1;
607 static gint ett_h282_SourceEventsResponse = -1;
608 static gint ett_h282_T_result_01 = -1;
609 static gint ett_h282_SourceChangeEventIndication = -1;
610 static gint ett_h282_DeviceAttributeRequest = -1;
611 static gint ett_h282_DeviceAttributeResponse = -1;
612 static gint ett_h282_SET_OF_DeviceAttribute = -1;
613 static gint ett_h282_T_result_02 = -1;
614 static gint ett_h282_DeviceLockRequest = -1;
615 static gint ett_h282_DeviceLockResponse = -1;
616 static gint ett_h282_T_result_03 = -1;
617 static gint ett_h282_DeviceLockEnquireRequest = -1;
618 static gint ett_h282_DeviceLockEnquireResponse = -1;
619 static gint ett_h282_T_result_04 = -1;
620 static gint ett_h282_DeviceLockTerminatedIndication = -1;
621 static gint ett_h282_DeviceControlRequest = -1;
622 static gint ett_h282_SET_SIZE_1_8_OF_ControlAttribute = -1;
623 static gint ett_h282_DeviceStatusEnquireRequest = -1;
624 static gint ett_h282_SET_SIZE_1_16_OF_StatusAttributeIdentifier = -1;
625 static gint ett_h282_DeviceStatusEnquireResponse = -1;
626 static gint ett_h282_SET_SIZE_1_16_OF_StatusAttribute = -1;
627 static gint ett_h282_T_result_05 = -1;
628 static gint ett_h282_ConfigureDeviceEventsRequest = -1;
629 static gint ett_h282_SET_OF_DeviceEventIdentifier = -1;
630 static gint ett_h282_ConfigureDeviceEventsResponse = -1;
631 static gint ett_h282_T_result_06 = -1;
632 static gint ett_h282_DeviceEventNotifyIndication = -1;
633 static gint ett_h282_SET_SIZE_1_8_OF_DeviceEvent = -1;
634 static gint ett_h282_NonStandardPDU = -1;
635 static gint ett_h282_RDCPDU = -1;
636 static gint ett_h282_RequestPDU = -1;
637 static gint ett_h282_ResponsePDU = -1;
638 static gint ett_h282_IndicationPDU = -1;
639
640 /*--- End of included file: packet-h282-ett.c ---*/
641 #line 48 "packet-h282-template.c"
642
643 /* Dissectors */
644
645 /* Subdissectors */
646
647
648 /*--- Included file: packet-h282-fn.c ---*/
649 #line 1 "packet-h282-fn.c"
650
651
652 static int
653 dissect_h282_H221NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
654   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
655                                        4, 255, FALSE, NULL);
656
657   return offset;
658 }
659
660
661
662 static int
663 dissect_h282_OBJECT_IDENTIFIER(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
664   offset = dissect_per_object_identifier(tvb, offset, actx, tree, hf_index, NULL);
665
666   return offset;
667 }
668
669
670 static const value_string h282_Key_vals[] = {
671   {   0, "object" },
672   {   1, "h221NonStandard" },
673   { 0, NULL }
674 };
675
676 static const per_choice_t Key_choice[] = {
677   {   0, &hf_h282_object         , ASN1_NO_EXTENSIONS     , dissect_h282_OBJECT_IDENTIFIER },
678   {   1, &hf_h282_h221NonStandard, ASN1_NO_EXTENSIONS     , dissect_h282_H221NonStandardIdentifier },
679   { 0, NULL, 0, NULL }
680 };
681
682 static int
683 dissect_h282_Key(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
684   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
685                                  ett_h282_Key, Key_choice,
686                                  NULL);
687
688   return offset;
689 }
690
691
692
693 static int
694 dissect_h282_OCTET_STRING(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
695   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
696                                        NO_BOUND, NO_BOUND, FALSE, NULL);
697
698   return offset;
699 }
700
701
702 static const per_sequence_t NonStandardParameter_sequence[] = {
703   { &hf_h282_key            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Key },
704   { &hf_h282_data           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_OCTET_STRING },
705   { NULL, 0, 0, NULL }
706 };
707
708 static int
709 dissect_h282_NonStandardParameter(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
710   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
711                                    ett_h282_NonStandardParameter, NonStandardParameter_sequence);
712
713   return offset;
714 }
715
716
717
718 static int
719 dissect_h282_Handle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
720   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
721                                                             0U, 4294967295U, NULL, FALSE);
722
723   return offset;
724 }
725
726
727 static const value_string h282_NonStandardIdentifier_vals[] = {
728   {   0, "object" },
729   {   1, "h221nonStandard" },
730   { 0, NULL }
731 };
732
733 static const per_choice_t NonStandardIdentifier_choice[] = {
734   {   0, &hf_h282_object         , ASN1_NO_EXTENSIONS     , dissect_h282_OBJECT_IDENTIFIER },
735   {   1, &hf_h282_h221nonStandard, ASN1_NO_EXTENSIONS     , dissect_h282_H221NonStandardIdentifier },
736   { 0, NULL, 0, NULL }
737 };
738
739 static int
740 dissect_h282_NonStandardIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
741   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
742                                  ett_h282_NonStandardIdentifier, NonStandardIdentifier_choice,
743                                  NULL);
744
745   return offset;
746 }
747
748
749
750 static int
751 dissect_h282_TextString(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
752   offset = dissect_per_BMPString(tvb, offset, actx, tree, hf_index,
753                                           0, 255, FALSE);
754
755   return offset;
756 }
757
758
759
760 static int
761 dissect_h282_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
762   offset = dissect_per_null(tvb, offset, actx, tree, hf_index);
763
764   return offset;
765 }
766
767
768 static const value_string h282_DeviceClass_vals[] = {
769   {   0, "camera" },
770   {   1, "microphone" },
771   {   2, "streamPlayerRecorder" },
772   {   3, "slideProjector" },
773   {   4, "lightSource" },
774   {   5, "sourceCombiner" },
775   {   6, "nonStandardDevice" },
776   { 0, NULL }
777 };
778
779 static const per_choice_t DeviceClass_choice[] = {
780   {   0, &hf_h282_camera         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
781   {   1, &hf_h282_microphone     , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
782   {   2, &hf_h282_streamPlayerRecorder, ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
783   {   3, &hf_h282_slideProjector , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
784   {   4, &hf_h282_lightSource    , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
785   {   5, &hf_h282_sourceCombiner , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
786   {   6, &hf_h282_nonStandardDevice, ASN1_NO_EXTENSIONS     , dissect_h282_NonStandardIdentifier },
787   { 0, NULL, 0, NULL }
788 };
789
790 static int
791 dissect_h282_DeviceClass(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
792   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
793                                  ett_h282_DeviceClass, DeviceClass_choice,
794                                  NULL);
795
796   return offset;
797 }
798
799
800
801 static int
802 dissect_h282_DeviceID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
803   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
804                                                             0U, 127U, NULL, FALSE);
805
806   return offset;
807 }
808
809
810
811 static int
812 dissect_h282_StreamID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
813   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
814                                                             0U, 65535U, NULL, FALSE);
815
816   return offset;
817 }
818
819
820
821 static int
822 dissect_h282_BOOLEAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
823   offset = dissect_per_boolean(tvb, offset, actx, tree, hf_index, NULL);
824
825   return offset;
826 }
827
828
829
830 static int
831 dissect_h282_INTEGER_0_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
832   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
833                                                             0U, 255U, NULL, FALSE);
834
835   return offset;
836 }
837
838
839 static const per_sequence_t DeviceProfile_sequence[] = {
840   { &hf_h282_deviceID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_DeviceID },
841   { &hf_h282_audioSourceFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
842   { &hf_h282_audioSinkFlag  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
843   { &hf_h282_videoSourceFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
844   { &hf_h282_videoSinkFlag  , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
845   { &hf_h282_remoteControlFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
846   { &hf_h282_instanceNumber , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_255 },
847   { &hf_h282_deviceName     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h282_TextString },
848   { NULL, 0, 0, NULL }
849 };
850
851 static int
852 dissect_h282_DeviceProfile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
853   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
854                                    ett_h282_DeviceProfile, DeviceProfile_sequence);
855
856   return offset;
857 }
858
859
860 static const per_sequence_t StreamProfile_sequence[] = {
861   { &hf_h282_streamID       , ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_StreamID },
862   { &hf_h282_videoStreamFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
863   { &hf_h282_sourceChangeFlag, ASN1_EXTENSION_ROOT    , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
864   { &hf_h282_streamName     , ASN1_EXTENSION_ROOT    , ASN1_OPTIONAL    , dissect_h282_TextString },
865   { NULL, 0, 0, NULL }
866 };
867
868 static int
869 dissect_h282_StreamProfile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
870   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
871                                    ett_h282_StreamProfile, StreamProfile_sequence);
872
873   return offset;
874 }
875
876
877
878 static int
879 dissect_h282_INTEGER_0_65535(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
880   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
881                                                             0U, 65535U, NULL, FALSE);
882
883   return offset;
884 }
885
886
887 static const value_string h282_CapabilityID_vals[] = {
888   {   0, "standard" },
889   {   1, "nonStandard" },
890   { 0, NULL }
891 };
892
893 static const per_choice_t CapabilityID_choice[] = {
894   {   0, &hf_h282_standard       , ASN1_NO_EXTENSIONS     , dissect_h282_INTEGER_0_65535 },
895   {   1, &hf_h282_nonStandard    , ASN1_NO_EXTENSIONS     , dissect_h282_Key },
896   { 0, NULL, 0, NULL }
897 };
898
899 static int
900 dissect_h282_CapabilityID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
901   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
902                                  ett_h282_CapabilityID, CapabilityID_choice,
903                                  NULL);
904
905   return offset;
906 }
907
908
909 static const per_sequence_t SET_SIZE_0_127_OF_DeviceProfile_set_of[1] = {
910   { &hf_h282_deviceList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceProfile },
911 };
912
913 static int
914 dissect_h282_SET_SIZE_0_127_OF_DeviceProfile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
915   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
916                                              ett_h282_SET_SIZE_0_127_OF_DeviceProfile, SET_SIZE_0_127_OF_DeviceProfile_set_of,
917                                              0, 127, FALSE);
918
919   return offset;
920 }
921
922
923 static const per_sequence_t SET_SIZE_0_127_OF_StreamProfile_set_of[1] = {
924   { &hf_h282_streamList_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_StreamProfile },
925 };
926
927 static int
928 dissect_h282_SET_SIZE_0_127_OF_StreamProfile(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
929   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
930                                              ett_h282_SET_SIZE_0_127_OF_StreamProfile, SET_SIZE_0_127_OF_StreamProfile_set_of,
931                                              0, 127, FALSE);
932
933   return offset;
934 }
935
936
937 static const value_string h282_T_applicationData_vals[] = {
938   {   0, "deviceList" },
939   {   1, "streamList" },
940   { 0, NULL }
941 };
942
943 static const per_choice_t T_applicationData_choice[] = {
944   {   0, &hf_h282_deviceList     , ASN1_NO_EXTENSIONS     , dissect_h282_SET_SIZE_0_127_OF_DeviceProfile },
945   {   1, &hf_h282_streamList     , ASN1_NO_EXTENSIONS     , dissect_h282_SET_SIZE_0_127_OF_StreamProfile },
946   { 0, NULL, 0, NULL }
947 };
948
949 static int
950 dissect_h282_T_applicationData(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
951   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
952                                  ett_h282_T_applicationData, T_applicationData_choice,
953                                  NULL);
954
955   return offset;
956 }
957
958
959 static const per_sequence_t NonCollapsingCapabilities_item_sequence[] = {
960   { &hf_h282_capabilityID   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CapabilityID },
961   { &hf_h282_applicationData, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_applicationData },
962   { NULL, 0, 0, NULL }
963 };
964
965 static int
966 dissect_h282_NonCollapsingCapabilities_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
967   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
968                                    ett_h282_NonCollapsingCapabilities_item, NonCollapsingCapabilities_item_sequence);
969
970   return offset;
971 }
972
973
974 static const per_sequence_t NonCollapsingCapabilities_set_of[1] = {
975   { &hf_h282_NonCollapsingCapabilities_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_NonCollapsingCapabilities_item },
976 };
977
978 static int
979 dissect_h282_NonCollapsingCapabilities(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
980   offset = dissect_per_set_of(tvb, offset, actx, tree, hf_index,
981                                  ett_h282_NonCollapsingCapabilities, NonCollapsingCapabilities_set_of);
982
983   return offset;
984 }
985
986
987
988 static int
989 dissect_h282_Day(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
990   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
991                                                             1U, 31U, NULL, FALSE);
992
993   return offset;
994 }
995
996
997
998 static int
999 dissect_h282_Month(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1000   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1001                                                             1U, 12U, NULL, FALSE);
1002
1003   return offset;
1004 }
1005
1006
1007
1008 static int
1009 dissect_h282_Year(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1010   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1011                                                             1980U, 2999U, NULL, FALSE);
1012
1013   return offset;
1014 }
1015
1016
1017
1018 static int
1019 dissect_h282_Hour(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1020   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1021                                                             0U, 23U, NULL, FALSE);
1022
1023   return offset;
1024 }
1025
1026
1027
1028 static int
1029 dissect_h282_Minute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1030   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1031                                                             0U, 59U, NULL, FALSE);
1032
1033   return offset;
1034 }
1035
1036
1037
1038 static int
1039 dissect_h282_DeviceText(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1040   offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
1041                                        0, 32, FALSE, NULL);
1042
1043   return offset;
1044 }
1045
1046
1047
1048 static int
1049 dissect_h282_PanPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1050   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1051                                                             -18000, 18000U, NULL, FALSE);
1052
1053   return offset;
1054 }
1055
1056
1057
1058 static int
1059 dissect_h282_TiltPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1060   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1061                                                             -18000, 18000U, NULL, FALSE);
1062
1063   return offset;
1064 }
1065
1066
1067
1068 static int
1069 dissect_h282_ZoomPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1070   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1071                                                             -1023, 1023U, NULL, FALSE);
1072
1073   return offset;
1074 }
1075
1076
1077
1078 static int
1079 dissect_h282_IrisPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1080   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1081                                                             -127, 127U, NULL, FALSE);
1082
1083   return offset;
1084 }
1085
1086
1087
1088 static int
1089 dissect_h282_FocusPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1090   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1091                                                             -127, 127U, NULL, FALSE);
1092
1093   return offset;
1094 }
1095
1096
1097
1098 static int
1099 dissect_h282_CameraPanSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1100   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1101                                                             1U, 18000U, NULL, FALSE);
1102
1103   return offset;
1104 }
1105
1106
1107
1108 static int
1109 dissect_h282_CameraTiltSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1110   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1111                                                             1U, 18000U, NULL, FALSE);
1112
1113   return offset;
1114 }
1115
1116
1117
1118 static int
1119 dissect_h282_BackLight(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1120   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1121                                                             0U, 255U, NULL, FALSE);
1122
1123   return offset;
1124 }
1125
1126
1127
1128 static int
1129 dissect_h282_WhiteBalance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1130   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1131                                                             0U, 255U, NULL, FALSE);
1132
1133   return offset;
1134 }
1135
1136
1137
1138 static int
1139 dissect_h282_PresetNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1140   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1141                                                             1U, 255U, NULL, FALSE);
1142
1143   return offset;
1144 }
1145
1146
1147 static const value_string h282_StreamPlayerState_vals[] = {
1148   {   0, "playing" },
1149   {   1, "recording" },
1150   {   2, "pausedOnRecord" },
1151   {   3, "pausedOnPlay" },
1152   {   4, "rewinding" },
1153   {   5, "fastForwarding" },
1154   {   6, "searchingForwards" },
1155   {   7, "searchingBackwards" },
1156   {   8, "stopped" },
1157   {   9, "programUnavailable" },
1158   { 0, NULL }
1159 };
1160
1161 static const per_choice_t StreamPlayerState_choice[] = {
1162   {   0, &hf_h282_playing        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1163   {   1, &hf_h282_recording      , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1164   {   2, &hf_h282_pausedOnRecord , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1165   {   3, &hf_h282_pausedOnPlay   , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1166   {   4, &hf_h282_rewinding      , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1167   {   5, &hf_h282_fastForwarding , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1168   {   6, &hf_h282_searchingForwards, ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1169   {   7, &hf_h282_searchingBackwards, ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1170   {   8, &hf_h282_stopped        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1171   {   9, &hf_h282_programUnavailable, ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1172   { 0, NULL, 0, NULL }
1173 };
1174
1175 static int
1176 dissect_h282_StreamPlayerState(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1177   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1178                                  ett_h282_StreamPlayerState, StreamPlayerState_choice,
1179                                  NULL);
1180
1181   return offset;
1182 }
1183
1184
1185 static const per_sequence_t T_presetCapability_item_sequence[] = {
1186   { &hf_h282_presetNumber   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PresetNumber },
1187   { &hf_h282_storeModeSupported, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
1188   { &hf_h282_presetTextLabel, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceText },
1189   { NULL, 0, 0, NULL }
1190 };
1191
1192 static int
1193 dissect_h282_T_presetCapability_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1194   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1195                                    ett_h282_T_presetCapability_item, T_presetCapability_item_sequence);
1196
1197   return offset;
1198 }
1199
1200
1201 static const per_sequence_t T_presetCapability_set_of[1] = {
1202   { &hf_h282_presetCapability_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_presetCapability_item },
1203 };
1204
1205 static int
1206 dissect_h282_T_presetCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1207   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1208                                              ett_h282_T_presetCapability, T_presetCapability_set_of,
1209                                              0, 255, FALSE);
1210
1211   return offset;
1212 }
1213
1214
1215 static const per_sequence_t DevicePresetCapability_sequence[] = {
1216   { &hf_h282_maxNumber      , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PresetNumber },
1217   { &hf_h282_presetCapability, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_presetCapability },
1218   { NULL, 0, 0, NULL }
1219 };
1220
1221 static int
1222 dissect_h282_DevicePresetCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1223   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1224                                    ett_h282_DevicePresetCapability, DevicePresetCapability_sequence);
1225
1226   return offset;
1227 }
1228
1229
1230
1231 static int
1232 dissect_h282_INTEGER_2_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1233   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1234                                                             2U, 255U, NULL, FALSE);
1235
1236   return offset;
1237 }
1238
1239
1240
1241 static int
1242 dissect_h282_INTEGER_1_255(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1243   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1244                                                             1U, 255U, NULL, FALSE);
1245
1246   return offset;
1247 }
1248
1249
1250 static const per_sequence_t T_filterTextLabel_item_sequence[] = {
1251   { &hf_h282_filterNumber   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_255 },
1252   { &hf_h282_filterTextLabel_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceText },
1253   { NULL, 0, 0, NULL }
1254 };
1255
1256 static int
1257 dissect_h282_T_filterTextLabel_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1258   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1259                                    ett_h282_T_filterTextLabel_item, T_filterTextLabel_item_sequence);
1260
1261   return offset;
1262 }
1263
1264
1265 static const per_sequence_t T_filterTextLabel_set_of[1] = {
1266   { &hf_h282_filterTextLabel_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_filterTextLabel_item },
1267 };
1268
1269 static int
1270 dissect_h282_T_filterTextLabel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1271   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1272                                              ett_h282_T_filterTextLabel, T_filterTextLabel_set_of,
1273                                              0, 255, FALSE);
1274
1275   return offset;
1276 }
1277
1278
1279 static const per_sequence_t CameraFilterCapability_sequence[] = {
1280   { &hf_h282_maxNumberOfFilters, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_2_255 },
1281   { &hf_h282_filterTextLabel, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_filterTextLabel },
1282   { NULL, 0, 0, NULL }
1283 };
1284
1285 static int
1286 dissect_h282_CameraFilterCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1287   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1288                                    ett_h282_CameraFilterCapability, CameraFilterCapability_sequence);
1289
1290   return offset;
1291 }
1292
1293
1294 static const per_sequence_t T_accessoryTextLabel_item_sequence[] = {
1295   { &hf_h282_lensNumber     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_255 },
1296   { &hf_h282_lensTextLabel  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceText },
1297   { NULL, 0, 0, NULL }
1298 };
1299
1300 static int
1301 dissect_h282_T_accessoryTextLabel_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1302   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1303                                    ett_h282_T_accessoryTextLabel_item, T_accessoryTextLabel_item_sequence);
1304
1305   return offset;
1306 }
1307
1308
1309 static const per_sequence_t T_accessoryTextLabel_set_of[1] = {
1310   { &hf_h282_accessoryTextLabel_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_accessoryTextLabel_item },
1311 };
1312
1313 static int
1314 dissect_h282_T_accessoryTextLabel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1315   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1316                                              ett_h282_T_accessoryTextLabel, T_accessoryTextLabel_set_of,
1317                                              0, 255, FALSE);
1318
1319   return offset;
1320 }
1321
1322
1323 static const per_sequence_t CameraLensCapability_sequence[] = {
1324   { &hf_h282_maxNumberOfLens, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_2_255 },
1325   { &hf_h282_accessoryTextLabel, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_accessoryTextLabel },
1326   { NULL, 0, 0, NULL }
1327 };
1328
1329 static int
1330 dissect_h282_CameraLensCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1331   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1332                                    ett_h282_CameraLensCapability, CameraLensCapability_sequence);
1333
1334   return offset;
1335 }
1336
1337
1338
1339 static int
1340 dissect_h282_INTEGER_1_10(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1341   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1342                                                             1U, 10U, NULL, FALSE);
1343
1344   return offset;
1345 }
1346
1347
1348 static const per_sequence_t T_lightTextLabel_item_sequence[] = {
1349   { &hf_h282_lightNumber    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_10 },
1350   { &hf_h282_lightLabel     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceText },
1351   { NULL, 0, 0, NULL }
1352 };
1353
1354 static int
1355 dissect_h282_T_lightTextLabel_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1356   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1357                                    ett_h282_T_lightTextLabel_item, T_lightTextLabel_item_sequence);
1358
1359   return offset;
1360 }
1361
1362
1363 static const per_sequence_t T_lightTextLabel_set_of[1] = {
1364   { &hf_h282_lightTextLabel_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_lightTextLabel_item },
1365 };
1366
1367 static int
1368 dissect_h282_T_lightTextLabel(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1369   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1370                                              ett_h282_T_lightTextLabel, T_lightTextLabel_set_of,
1371                                              0, 10, FALSE);
1372
1373   return offset;
1374 }
1375
1376
1377 static const per_sequence_t ExternalCameraLightCapability_sequence[] = {
1378   { &hf_h282_maxNumber_01   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_10 },
1379   { &hf_h282_lightTextLabel , ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_lightTextLabel },
1380   { NULL, 0, 0, NULL }
1381 };
1382
1383 static int
1384 dissect_h282_ExternalCameraLightCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1385   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1386                                    ett_h282_ExternalCameraLightCapability, ExternalCameraLightCapability_sequence);
1387
1388   return offset;
1389 }
1390
1391
1392 static const per_sequence_t CameraPanSpeedCapability_sequence[] = {
1393   { &hf_h282_maxSpeed       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraPanSpeed },
1394   { &hf_h282_minSpeed       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraPanSpeed },
1395   { &hf_h282_speedStepSize  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraPanSpeed },
1396   { NULL, 0, 0, NULL }
1397 };
1398
1399 static int
1400 dissect_h282_CameraPanSpeedCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1401   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1402                                    ett_h282_CameraPanSpeedCapability, CameraPanSpeedCapability_sequence);
1403
1404   return offset;
1405 }
1406
1407
1408 static const per_sequence_t CameraTiltSpeedCapability_sequence[] = {
1409   { &hf_h282_maxSpeed_01    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraTiltSpeed },
1410   { &hf_h282_minSpeed_01    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraTiltSpeed },
1411   { &hf_h282_speedStepSize_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_CameraTiltSpeed },
1412   { NULL, 0, 0, NULL }
1413 };
1414
1415 static int
1416 dissect_h282_CameraTiltSpeedCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1417   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1418                                    ett_h282_CameraTiltSpeedCapability, CameraTiltSpeedCapability_sequence);
1419
1420   return offset;
1421 }
1422
1423
1424
1425 static int
1426 dissect_h282_MaxBacklight(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1427   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1428                                                             1U, 255U, NULL, FALSE);
1429
1430   return offset;
1431 }
1432
1433
1434
1435 static int
1436 dissect_h282_MaxWhiteBalance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1437   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1438                                                             1U, 255U, NULL, FALSE);
1439
1440   return offset;
1441 }
1442
1443
1444
1445 static int
1446 dissect_h282_MinZoomPositionSetSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1447   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1448                                                             1U, 1023U, NULL, FALSE);
1449
1450   return offset;
1451 }
1452
1453
1454
1455 static int
1456 dissect_h282_MinFocusPositionStepSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1457   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1458                                                             1U, 127U, NULL, FALSE);
1459
1460   return offset;
1461 }
1462
1463
1464
1465 static int
1466 dissect_h282_MinIrisPositionStepSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1467   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1468                                                             1U, 127U, NULL, FALSE);
1469
1470   return offset;
1471 }
1472
1473
1474
1475 static int
1476 dissect_h282_INTEGER_M18000_0(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1477   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1478                                                             -18000, 0U, NULL, FALSE);
1479
1480   return offset;
1481 }
1482
1483
1484
1485 static int
1486 dissect_h282_INTEGER_0_18000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1487   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1488                                                             0U, 18000U, NULL, FALSE);
1489
1490   return offset;
1491 }
1492
1493
1494
1495 static int
1496 dissect_h282_INTEGER_1_18000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1497   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1498                                                             1U, 18000U, NULL, FALSE);
1499
1500   return offset;
1501 }
1502
1503
1504 static const per_sequence_t PanPositionCapability_sequence[] = {
1505   { &hf_h282_maxLeft        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_M18000_0 },
1506   { &hf_h282_maxRight       , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_18000 },
1507   { &hf_h282_minStepSize    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_18000 },
1508   { NULL, 0, 0, NULL }
1509 };
1510
1511 static int
1512 dissect_h282_PanPositionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1513   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1514                                    ett_h282_PanPositionCapability, PanPositionCapability_sequence);
1515
1516   return offset;
1517 }
1518
1519
1520 static const per_sequence_t TiltPositionCapability_sequence[] = {
1521   { &hf_h282_maxDown        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_M18000_0 },
1522   { &hf_h282_maxUp          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_18000 },
1523   { &hf_h282_minStepSize    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_18000 },
1524   { NULL, 0, 0, NULL }
1525 };
1526
1527 static int
1528 dissect_h282_TiltPositionCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1529   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1530                                    ett_h282_TiltPositionCapability, TiltPositionCapability_sequence);
1531
1532   return offset;
1533 }
1534
1535
1536
1537 static int
1538 dissect_h282_MinZoomMagnificationStepSize(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1539   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1540                                                             1U, 1000U, NULL, FALSE);
1541
1542   return offset;
1543 }
1544
1545
1546
1547 static int
1548 dissect_h282_MaxNumberOfSlides(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1549   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1550                                                             1U, 1024U, NULL, FALSE);
1551
1552   return offset;
1553 }
1554
1555
1556
1557 static int
1558 dissect_h282_MaxSlideDisplayTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1559   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1560                                                             1U, 255U, NULL, FALSE);
1561
1562   return offset;
1563 }
1564
1565
1566
1567 static int
1568 dissect_h282_MaxNumberOfPrograms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1569   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1570                                                             1U, 1023U, NULL, FALSE);
1571
1572   return offset;
1573 }
1574
1575
1576
1577 static int
1578 dissect_h282_INTEGER_10_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1579   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1580                                                             10U, 1000U, NULL, FALSE);
1581
1582   return offset;
1583 }
1584
1585
1586 static const per_sequence_t T_multiplierFactors_set_of[1] = {
1587   { &hf_h282_multiplierFactors_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_10_1000 },
1588 };
1589
1590 static int
1591 dissect_h282_T_multiplierFactors(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1592   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1593                                              ett_h282_T_multiplierFactors, T_multiplierFactors_set_of,
1594                                              1, 64, FALSE);
1595
1596   return offset;
1597 }
1598
1599
1600 static const per_sequence_t T_divisorFactors_set_of[1] = {
1601   { &hf_h282_divisorFactors_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_10_1000 },
1602 };
1603
1604 static int
1605 dissect_h282_T_divisorFactors(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1606   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1607                                              ett_h282_T_divisorFactors, T_divisorFactors_set_of,
1608                                              1, 64, FALSE);
1609
1610   return offset;
1611 }
1612
1613
1614 static const per_sequence_t PlayBackSpeedCapability_sequence[] = {
1615   { &hf_h282_multiplierFactors, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_multiplierFactors },
1616   { &hf_h282_divisorFactors , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_divisorFactors },
1617   { NULL, 0, 0, NULL }
1618 };
1619
1620 static int
1621 dissect_h282_PlayBackSpeedCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1622   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1623                                    ett_h282_PlayBackSpeedCapability, PlayBackSpeedCapability_sequence);
1624
1625   return offset;
1626 }
1627
1628
1629
1630 static int
1631 dissect_h282_INTEGER_2_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1632   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1633                                                             2U, 64U, NULL, FALSE);
1634
1635   return offset;
1636 }
1637
1638
1639
1640 static int
1641 dissect_h282_INTEGER_1_64(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1642   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
1643                                                             1U, 64U, NULL, FALSE);
1644
1645   return offset;
1646 }
1647
1648
1649 static const per_sequence_t T_availableDevices_item_sequence[] = {
1650   { &hf_h282_deviceClass    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceClass },
1651   { &hf_h282_deviceIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceID },
1652   { NULL, 0, 0, NULL }
1653 };
1654
1655 static int
1656 dissect_h282_T_availableDevices_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1657   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1658                                    ett_h282_T_availableDevices_item, T_availableDevices_item_sequence);
1659
1660   return offset;
1661 }
1662
1663
1664 static const per_sequence_t T_availableDevices_set_of[1] = {
1665   { &hf_h282_availableDevices_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_availableDevices_item },
1666 };
1667
1668 static int
1669 dissect_h282_T_availableDevices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1670   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1671                                              ett_h282_T_availableDevices, T_availableDevices_set_of,
1672                                              2, 64, FALSE);
1673
1674   return offset;
1675 }
1676
1677
1678 static const per_sequence_t VideoInputsCapability_sequence[] = {
1679   { &hf_h282_numberOfDeviceInputs, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_2_64 },
1680   { &hf_h282_numberOfDeviceRows, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_1_64 },
1681   { &hf_h282_availableDevices, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_availableDevices },
1682   { NULL, 0, 0, NULL }
1683 };
1684
1685 static int
1686 dissect_h282_VideoInputsCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1687   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1688                                    ett_h282_VideoInputsCapability, VideoInputsCapability_sequence);
1689
1690   return offset;
1691 }
1692
1693
1694 static const per_sequence_t T_availableDevices_item_01_sequence[] = {
1695   { &hf_h282_deviceClass    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceClass },
1696   { &hf_h282_deviceIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceID },
1697   { NULL, 0, 0, NULL }
1698 };
1699
1700 static int
1701 dissect_h282_T_availableDevices_item_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1702   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1703                                    ett_h282_T_availableDevices_item_01, T_availableDevices_item_01_sequence);
1704
1705   return offset;
1706 }
1707
1708
1709 static const per_sequence_t T_availableDevices_01_set_of[1] = {
1710   { &hf_h282_availableDevices_item_01, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_availableDevices_item_01 },
1711 };
1712
1713 static int
1714 dissect_h282_T_availableDevices_01(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1715   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
1716                                              ett_h282_T_availableDevices_01, T_availableDevices_01_set_of,
1717                                              2, 64, FALSE);
1718
1719   return offset;
1720 }
1721
1722
1723 static const per_sequence_t AudioInputsCapability_sequence[] = {
1724   { &hf_h282_numberOfDeviceInputs, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_2_64 },
1725   { &hf_h282_availableDevices_01, ASN1_NO_EXTENSIONS     , ASN1_OPTIONAL    , dissect_h282_T_availableDevices_01 },
1726   { NULL, 0, 0, NULL }
1727 };
1728
1729 static int
1730 dissect_h282_AudioInputsCapability(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1731   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1732                                    ett_h282_AudioInputsCapability, AudioInputsCapability_sequence);
1733
1734   return offset;
1735 }
1736
1737
1738 static const value_string h282_DeviceAttribute_vals[] = {
1739   {   0, "deviceStateSupported" },
1740   {   1, "deviceDateSupported" },
1741   {   2, "deviceTimeSupported" },
1742   {   3, "devicePresetSupported" },
1743   {   4, "irisModeSupported" },
1744   {   5, "focusModeSupported" },
1745   {   6, "pointingModeSupported" },
1746   {   7, "cameraLensSupported" },
1747   {   8, "cameraFilterSupported" },
1748   {   9, "homePositionSupported" },
1749   {  10, "externalCameraLightSupported" },
1750   {  11, "clearCameraLensSupported" },
1751   {  12, "cameraPanSpeedSupported" },
1752   {  13, "cameraTiltSpeedSupported" },
1753   {  14, "backLightModeSupported" },
1754   {  15, "backLightSettingSupported" },
1755   {  16, "whiteBalanceSettingSupported" },
1756   {  17, "whiteBalanceModeSupported" },
1757   {  18, "calibrateWhiteBalanceSupported" },
1758   {  19, "focusImageSupported" },
1759   {  20, "captureImageSupported" },
1760   {  21, "panContinuousSupported" },
1761   {  22, "tiltContinuousSupported" },
1762   {  23, "zoomContinuousSupported" },
1763   {  24, "focusContinuousSupported" },
1764   {  25, "irisContinuousSupported" },
1765   {  26, "zoomPositionSupported" },
1766   {  27, "focusPositionSupported" },
1767   {  28, "irisPositionSupported" },
1768   {  29, "panPositionSupported" },
1769   {  30, "tiltPositionSupported" },
1770   {  31, "zoomMagnificationSupported" },
1771   {  32, "panViewSupported" },
1772   {  33, "tiltViewSupported" },
1773   {  34, "selectSlideSupported" },
1774   {  35, "selectNextSlideSupported" },
1775   {  36, "slideShowModeSupported" },
1776   {  37, "playSlideShowSupported" },
1777   {  38, "setSlideDisplayTimeSupported" },
1778   {  39, "continuousRewindSupported" },
1779   {  40, "continuousFastForwardSupported" },
1780   {  41, "searchBackwardsSupported" },
1781   {  42, "searchForwardsSupported" },
1782   {  43, "pauseSupported" },
1783   {  44, "selectProgramSupported" },
1784   {  45, "nextProgramSupported" },
1785   {  46, "gotoNormalPlayTimePointSupported" },
1786   {  47, "readStreamPlayerStateSupported" },
1787   {  48, "readProgramDurationSupported" },
1788   {  49, "continuousPlayBackModeSupported" },
1789   {  50, "playbackSpeedSupported" },
1790   {  51, "playSupported" },
1791   {  52, "setAudioOutputStateSupported" },
1792   {  53, "playToNormalPlayTimePointSupported" },
1793   {  54, "recordSupported" },
1794   {  55, "recordForDurationSupported" },
1795   {  56, "configurableVideoInputsSupported" },
1796   {  57, "videoInputsSupported" },
1797   {  58, "configurableAudioInputsSupported" },
1798   {  59, "audioInputsSupported" },
1799   {  60, "deviceLockStateChangedSupported" },
1800   {  61, "deviceAvailabilityChangedSupported" },
1801   {  62, "cameraPannedToLimitSupported" },
1802   {  63, "cameraTiltedToLimitSupported" },
1803   {  64, "cameraZoomedToLimitSupported" },
1804   {  65, "cameraFocusedToLimitSupported" },
1805   {  66, "autoSlideShowFinishedSupported" },
1806   {  67, "streamPlayerStateChangeSupported" },
1807   {  68, "streamPlayerProgramChangeSupported" },
1808   {  69, "nonStandardAttributeSupported" },
1809   { 0, NULL }
1810 };
1811
1812 static const per_choice_t DeviceAttribute_choice[] = {
1813   {   0, &hf_h282_deviceStateSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1814   {   1, &hf_h282_deviceDateSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1815   {   2, &hf_h282_deviceTimeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1816   {   3, &hf_h282_devicePresetSupported, ASN1_EXTENSION_ROOT    , dissect_h282_DevicePresetCapability },
1817   {   4, &hf_h282_irisModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1818   {   5, &hf_h282_focusModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1819   {   6, &hf_h282_pointingModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1820   {   7, &hf_h282_cameraLensSupported, ASN1_EXTENSION_ROOT    , dissect_h282_CameraLensCapability },
1821   {   8, &hf_h282_cameraFilterSupported, ASN1_EXTENSION_ROOT    , dissect_h282_CameraFilterCapability },
1822   {   9, &hf_h282_homePositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1823   {  10, &hf_h282_externalCameraLightSupported, ASN1_EXTENSION_ROOT    , dissect_h282_ExternalCameraLightCapability },
1824   {  11, &hf_h282_clearCameraLensSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1825   {  12, &hf_h282_cameraPanSpeedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_CameraPanSpeedCapability },
1826   {  13, &hf_h282_cameraTiltSpeedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_CameraTiltSpeedCapability },
1827   {  14, &hf_h282_backLightModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1828   {  15, &hf_h282_backLightSettingSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MaxBacklight },
1829   {  16, &hf_h282_whiteBalanceSettingSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MaxWhiteBalance },
1830   {  17, &hf_h282_whiteBalanceModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1831   {  18, &hf_h282_calibrateWhiteBalanceSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1832   {  19, &hf_h282_focusImageSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1833   {  20, &hf_h282_captureImageSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1834   {  21, &hf_h282_panContinuousSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1835   {  22, &hf_h282_tiltContinuousSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1836   {  23, &hf_h282_zoomContinuousSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1837   {  24, &hf_h282_focusContinuousSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1838   {  25, &hf_h282_irisContinuousSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1839   {  26, &hf_h282_zoomPositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MinZoomPositionSetSize },
1840   {  27, &hf_h282_focusPositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MinFocusPositionStepSize },
1841   {  28, &hf_h282_irisPositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MinIrisPositionStepSize },
1842   {  29, &hf_h282_panPositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_PanPositionCapability },
1843   {  30, &hf_h282_tiltPositionSupported, ASN1_EXTENSION_ROOT    , dissect_h282_TiltPositionCapability },
1844   {  31, &hf_h282_zoomMagnificationSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MinZoomMagnificationStepSize },
1845   {  32, &hf_h282_panViewSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1846   {  33, &hf_h282_tiltViewSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1847   {  34, &hf_h282_selectSlideSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MaxNumberOfSlides },
1848   {  35, &hf_h282_selectNextSlideSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1849   {  36, &hf_h282_slideShowModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1850   {  37, &hf_h282_playSlideShowSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1851   {  38, &hf_h282_setSlideDisplayTimeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MaxSlideDisplayTime },
1852   {  39, &hf_h282_continuousRewindSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1853   {  40, &hf_h282_continuousFastForwardSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1854   {  41, &hf_h282_searchBackwardsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1855   {  42, &hf_h282_searchForwardsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1856   {  43, &hf_h282_pauseSupported , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1857   {  44, &hf_h282_selectProgramSupported, ASN1_EXTENSION_ROOT    , dissect_h282_MaxNumberOfPrograms },
1858   {  45, &hf_h282_nextProgramSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1859   {  46, &hf_h282_gotoNormalPlayTimePointSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1860   {  47, &hf_h282_readStreamPlayerStateSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1861   {  48, &hf_h282_readProgramDurationSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1862   {  49, &hf_h282_continuousPlayBackModeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1863   {  50, &hf_h282_playbackSpeedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_PlayBackSpeedCapability },
1864   {  51, &hf_h282_playSupported  , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1865   {  52, &hf_h282_setAudioOutputStateSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1866   {  53, &hf_h282_playToNormalPlayTimePointSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1867   {  54, &hf_h282_recordSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1868   {  55, &hf_h282_recordForDurationSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1869   {  56, &hf_h282_configurableVideoInputsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_VideoInputsCapability },
1870   {  57, &hf_h282_videoInputsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_VideoInputsCapability },
1871   {  58, &hf_h282_configurableAudioInputsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_AudioInputsCapability },
1872   {  59, &hf_h282_audioInputsSupported, ASN1_EXTENSION_ROOT    , dissect_h282_AudioInputsCapability },
1873   {  60, &hf_h282_deviceLockStateChangedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1874   {  61, &hf_h282_deviceAvailabilityChangedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1875   {  62, &hf_h282_cameraPannedToLimitSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1876   {  63, &hf_h282_cameraTiltedToLimitSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1877   {  64, &hf_h282_cameraZoomedToLimitSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1878   {  65, &hf_h282_cameraFocusedToLimitSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1879   {  66, &hf_h282_autoSlideShowFinishedSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1880   {  67, &hf_h282_streamPlayerStateChangeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1881   {  68, &hf_h282_streamPlayerProgramChangeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
1882   {  69, &hf_h282_nonStandardAttributeSupported, ASN1_EXTENSION_ROOT    , dissect_h282_NonStandardParameter },
1883   { 0, NULL, 0, NULL }
1884 };
1885
1886 static int
1887 dissect_h282_DeviceAttribute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1888   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1889                                  ett_h282_DeviceAttribute, DeviceAttribute_choice,
1890                                  NULL);
1891
1892   return offset;
1893 }
1894
1895
1896 static const value_string h282_DeviceState_vals[] = {
1897   {   0, "active" },
1898   {   1, "inactive" },
1899   { 0, NULL }
1900 };
1901
1902 static const per_choice_t DeviceState_choice[] = {
1903   {   0, &hf_h282_active         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1904   {   1, &hf_h282_inactive       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1905   { 0, NULL, 0, NULL }
1906 };
1907
1908 static int
1909 dissect_h282_DeviceState(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1910   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1911                                  ett_h282_DeviceState, DeviceState_choice,
1912                                  NULL);
1913
1914   return offset;
1915 }
1916
1917
1918 static const per_sequence_t DeviceDate_sequence[] = {
1919   { &hf_h282_day            , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Day },
1920   { &hf_h282_month          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Month },
1921   { &hf_h282_year           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Year },
1922   { NULL, 0, 0, NULL }
1923 };
1924
1925 static int
1926 dissect_h282_DeviceDate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1927   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1928                                    ett_h282_DeviceDate, DeviceDate_sequence);
1929
1930   return offset;
1931 }
1932
1933
1934 static const per_sequence_t DeviceTime_sequence[] = {
1935   { &hf_h282_hour           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Hour },
1936   { &hf_h282_minute         , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_Minute },
1937   { NULL, 0, 0, NULL }
1938 };
1939
1940 static int
1941 dissect_h282_DeviceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1942   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1943                                    ett_h282_DeviceTime, DeviceTime_sequence);
1944
1945   return offset;
1946 }
1947
1948
1949 static const value_string h282_T_mode_vals[] = {
1950   {   0, "store" },
1951   {   1, "activate" },
1952   { 0, NULL }
1953 };
1954
1955 static const per_choice_t T_mode_choice[] = {
1956   {   0, &hf_h282_store          , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1957   {   1, &hf_h282_activate       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1958   { 0, NULL, 0, NULL }
1959 };
1960
1961 static int
1962 dissect_h282_T_mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1963   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
1964                                  ett_h282_T_mode, T_mode_choice,
1965                                  NULL);
1966
1967   return offset;
1968 }
1969
1970
1971 static const per_sequence_t DevicePreset_sequence[] = {
1972   { &hf_h282_presetNumber   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PresetNumber },
1973   { &hf_h282_mode           , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_mode },
1974   { NULL, 0, 0, NULL }
1975 };
1976
1977 static int
1978 dissect_h282_DevicePreset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
1979   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
1980                                    ett_h282_DevicePreset, DevicePreset_sequence);
1981
1982   return offset;
1983 }
1984
1985
1986 static const value_string h282_Mode_vals[] = {
1987   {   0, "manual" },
1988   {   1, "auto" },
1989   { 0, NULL }
1990 };
1991
1992 static const per_choice_t Mode_choice[] = {
1993   {   0, &hf_h282_manual         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1994   {   1, &hf_h282_auto           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
1995   { 0, NULL, 0, NULL }
1996 };
1997
1998 static int
1999 dissect_h282_Mode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2000   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2001                                  ett_h282_Mode, Mode_choice,
2002                                  NULL);
2003
2004   return offset;
2005 }
2006
2007
2008 static const value_string h282_PointingToggle_vals[] = {
2009   {   0, "manual" },
2010   {   1, "auto" },
2011   {   2, "toggle" },
2012   { 0, NULL }
2013 };
2014
2015 static const per_choice_t PointingToggle_choice[] = {
2016   {   0, &hf_h282_manual         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2017   {   1, &hf_h282_auto           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2018   {   2, &hf_h282_toggle         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2019   { 0, NULL, 0, NULL }
2020 };
2021
2022 static int
2023 dissect_h282_PointingToggle(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2024   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2025                                  ett_h282_PointingToggle, PointingToggle_choice,
2026                                  NULL);
2027
2028   return offset;
2029 }
2030
2031
2032 static const value_string h282_SelectExternalLight_vals[] = {
2033   {   0, "lightNumber" },
2034   {   1, "none" },
2035   { 0, NULL }
2036 };
2037
2038 static const per_choice_t SelectExternalLight_choice[] = {
2039   {   0, &hf_h282_lightNumber    , ASN1_NO_EXTENSIONS     , dissect_h282_INTEGER_1_10 },
2040   {   1, &hf_h282_none           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2041   { 0, NULL, 0, NULL }
2042 };
2043
2044 static int
2045 dissect_h282_SelectExternalLight(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2046   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2047                                  ett_h282_SelectExternalLight, SelectExternalLight_choice,
2048                                  NULL);
2049
2050   return offset;
2051 }
2052
2053
2054 static const value_string h282_T_panDirection_vals[] = {
2055   {   0, "left" },
2056   {   1, "right" },
2057   {   2, "stop" },
2058   {   3, "continue" },
2059   { 0, NULL }
2060 };
2061
2062 static const per_choice_t T_panDirection_choice[] = {
2063   {   0, &hf_h282_left           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2064   {   1, &hf_h282_right          , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2065   {   2, &hf_h282_stop           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2066   {   3, &hf_h282_continue       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2067   { 0, NULL, 0, NULL }
2068 };
2069
2070 static int
2071 dissect_h282_T_panDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2072   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2073                                  ett_h282_T_panDirection, T_panDirection_choice,
2074                                  NULL);
2075
2076   return offset;
2077 }
2078
2079
2080
2081 static int
2082 dissect_h282_INTEGER_50_1000(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2083   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2084                                                             50U, 1000U, NULL, FALSE);
2085
2086   return offset;
2087 }
2088
2089
2090 static const per_sequence_t PanContinuous_sequence[] = {
2091   { &hf_h282_panDirection   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_panDirection },
2092   { &hf_h282_timeOut        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_50_1000 },
2093   { NULL, 0, 0, NULL }
2094 };
2095
2096 static int
2097 dissect_h282_PanContinuous(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2098   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2099                                    ett_h282_PanContinuous, PanContinuous_sequence);
2100
2101   return offset;
2102 }
2103
2104
2105 static const value_string h282_T_tiltDirection_vals[] = {
2106   {   0, "up" },
2107   {   1, "down" },
2108   {   2, "stop" },
2109   {   3, "continue" },
2110   { 0, NULL }
2111 };
2112
2113 static const per_choice_t T_tiltDirection_choice[] = {
2114   {   0, &hf_h282_up             , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2115   {   1, &hf_h282_down           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2116   {   2, &hf_h282_stop           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2117   {   3, &hf_h282_continue       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2118   { 0, NULL, 0, NULL }
2119 };
2120
2121 static int
2122 dissect_h282_T_tiltDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2123   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2124                                  ett_h282_T_tiltDirection, T_tiltDirection_choice,
2125                                  NULL);
2126
2127   return offset;
2128 }
2129
2130
2131 static const per_sequence_t TiltContinuous_sequence[] = {
2132   { &hf_h282_tiltDirection  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_tiltDirection },
2133   { &hf_h282_timeOut        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_50_1000 },
2134   { NULL, 0, 0, NULL }
2135 };
2136
2137 static int
2138 dissect_h282_TiltContinuous(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2139   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2140                                    ett_h282_TiltContinuous, TiltContinuous_sequence);
2141
2142   return offset;
2143 }
2144
2145
2146 static const value_string h282_T_zoomDirection_vals[] = {
2147   {   0, "telescopic" },
2148   {   1, "wide" },
2149   {   2, "stop" },
2150   {   3, "continue" },
2151   { 0, NULL }
2152 };
2153
2154 static const per_choice_t T_zoomDirection_choice[] = {
2155   {   0, &hf_h282_telescopic     , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2156   {   1, &hf_h282_wide           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2157   {   2, &hf_h282_stop           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2158   {   3, &hf_h282_continue       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2159   { 0, NULL, 0, NULL }
2160 };
2161
2162 static int
2163 dissect_h282_T_zoomDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2164   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2165                                  ett_h282_T_zoomDirection, T_zoomDirection_choice,
2166                                  NULL);
2167
2168   return offset;
2169 }
2170
2171
2172 static const per_sequence_t ZoomContinuous_sequence[] = {
2173   { &hf_h282_zoomDirection  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_zoomDirection },
2174   { &hf_h282_timeOut        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_50_1000 },
2175   { NULL, 0, 0, NULL }
2176 };
2177
2178 static int
2179 dissect_h282_ZoomContinuous(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2180   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2181                                    ett_h282_ZoomContinuous, ZoomContinuous_sequence);
2182
2183   return offset;
2184 }
2185
2186
2187 static const value_string h282_T_focusDirection_vals[] = {
2188   {   0, "near" },
2189   {   1, "far" },
2190   {   2, "stop" },
2191   {   3, "continue" },
2192   { 0, NULL }
2193 };
2194
2195 static const per_choice_t T_focusDirection_choice[] = {
2196   {   0, &hf_h282_near           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2197   {   1, &hf_h282_far            , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2198   {   2, &hf_h282_stop           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2199   {   3, &hf_h282_continue       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2200   { 0, NULL, 0, NULL }
2201 };
2202
2203 static int
2204 dissect_h282_T_focusDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2205   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2206                                  ett_h282_T_focusDirection, T_focusDirection_choice,
2207                                  NULL);
2208
2209   return offset;
2210 }
2211
2212
2213 static const per_sequence_t FocusContinuous_sequence[] = {
2214   { &hf_h282_focusDirection , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_focusDirection },
2215   { &hf_h282_timeOut        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_50_1000 },
2216   { NULL, 0, 0, NULL }
2217 };
2218
2219 static int
2220 dissect_h282_FocusContinuous(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2221   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2222                                    ett_h282_FocusContinuous, FocusContinuous_sequence);
2223
2224   return offset;
2225 }
2226
2227
2228 static const value_string h282_PositioningMode_vals[] = {
2229   {   0, "relative" },
2230   {   1, "absolute" },
2231   { 0, NULL }
2232 };
2233
2234 static const per_choice_t PositioningMode_choice[] = {
2235   {   0, &hf_h282_relative       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2236   {   1, &hf_h282_absolute       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2237   { 0, NULL, 0, NULL }
2238 };
2239
2240 static int
2241 dissect_h282_PositioningMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2242   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2243                                  ett_h282_PositioningMode, PositioningMode_choice,
2244                                  NULL);
2245
2246   return offset;
2247 }
2248
2249
2250
2251 static int
2252 dissect_h282_CameraLensNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2253   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2254                                                             1U, 255U, NULL, FALSE);
2255
2256   return offset;
2257 }
2258
2259
2260
2261 static int
2262 dissect_h282_CameraFilterNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2263   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2264                                                             1U, 255U, NULL, FALSE);
2265
2266   return offset;
2267 }
2268
2269
2270 static const per_sequence_t SetZoomPosition_sequence[] = {
2271   { &hf_h282_zoomPosition   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_ZoomPosition },
2272   { &hf_h282_positioningMode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PositioningMode },
2273   { NULL, 0, 0, NULL }
2274 };
2275
2276 static int
2277 dissect_h282_SetZoomPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2278   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2279                                    ett_h282_SetZoomPosition, SetZoomPosition_sequence);
2280
2281   return offset;
2282 }
2283
2284
2285 static const per_sequence_t SetFocusPosition_sequence[] = {
2286   { &hf_h282_focusPosition  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_FocusPosition },
2287   { &hf_h282_positioningMode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PositioningMode },
2288   { NULL, 0, 0, NULL }
2289 };
2290
2291 static int
2292 dissect_h282_SetFocusPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2293   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2294                                    ett_h282_SetFocusPosition, SetFocusPosition_sequence);
2295
2296   return offset;
2297 }
2298
2299
2300 static const per_sequence_t SetIrisPosition_sequence[] = {
2301   { &hf_h282_irisPosition   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_IrisPosition },
2302   { &hf_h282_positioningMode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PositioningMode },
2303   { NULL, 0, 0, NULL }
2304 };
2305
2306 static int
2307 dissect_h282_SetIrisPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2308   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2309                                    ett_h282_SetIrisPosition, SetIrisPosition_sequence);
2310
2311   return offset;
2312 }
2313
2314
2315 static const per_sequence_t SetPanPosition_sequence[] = {
2316   { &hf_h282_panPosition    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PanPosition },
2317   { &hf_h282_positioningMode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PositioningMode },
2318   { NULL, 0, 0, NULL }
2319 };
2320
2321 static int
2322 dissect_h282_SetPanPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2323   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2324                                    ett_h282_SetPanPosition, SetPanPosition_sequence);
2325
2326   return offset;
2327 }
2328
2329
2330 static const per_sequence_t SetTiltPosition_sequence[] = {
2331   { &hf_h282_tiltPosition   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_TiltPosition },
2332   { &hf_h282_positioningMode, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_PositioningMode },
2333   { NULL, 0, 0, NULL }
2334 };
2335
2336 static int
2337 dissect_h282_SetTiltPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2338   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2339                                    ett_h282_SetTiltPosition, SetTiltPosition_sequence);
2340
2341   return offset;
2342 }
2343
2344
2345
2346 static int
2347 dissect_h282_ZoomMagnification(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2348   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2349                                                             10U, 1000U, NULL, FALSE);
2350
2351   return offset;
2352 }
2353
2354
2355
2356 static int
2357 dissect_h282_PanView(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2358   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2359                                                             -1000, 1000U, NULL, FALSE);
2360
2361   return offset;
2362 }
2363
2364
2365
2366 static int
2367 dissect_h282_TiltView(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2368   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2369                                                             -1000, 1000U, NULL, FALSE);
2370
2371   return offset;
2372 }
2373
2374
2375
2376 static int
2377 dissect_h282_SlideNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2378   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2379                                                             0U, 1023U, NULL, FALSE);
2380
2381   return offset;
2382 }
2383
2384
2385 static const value_string h282_SelectDirection_vals[] = {
2386   {   0, "next" },
2387   {   1, "previous" },
2388   { 0, NULL }
2389 };
2390
2391 static const per_choice_t SelectDirection_choice[] = {
2392   {   0, &hf_h282_next           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2393   {   1, &hf_h282_previous       , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2394   { 0, NULL, 0, NULL }
2395 };
2396
2397 static int
2398 dissect_h282_SelectDirection(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2399   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2400                                  ett_h282_SelectDirection, SelectDirection_choice,
2401                                  NULL);
2402
2403   return offset;
2404 }
2405
2406
2407 static const value_string h282_AutoSlideShowControl_vals[] = {
2408   {   0, "start" },
2409   {   1, "stop" },
2410   {   2, "pause" },
2411   { 0, NULL }
2412 };
2413
2414 static const per_choice_t AutoSlideShowControl_choice[] = {
2415   {   0, &hf_h282_start          , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2416   {   1, &hf_h282_stop           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2417   {   2, &hf_h282_pause          , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2418   { 0, NULL, 0, NULL }
2419 };
2420
2421 static int
2422 dissect_h282_AutoSlideShowControl(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2423   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2424                                  ett_h282_AutoSlideShowControl, AutoSlideShowControl_choice,
2425                                  NULL);
2426
2427   return offset;
2428 }
2429
2430
2431
2432 static int
2433 dissect_h282_AutoSlideDisplayTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2434   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2435                                                             1U, 255U, NULL, FALSE);
2436
2437   return offset;
2438 }
2439
2440
2441
2442 static int
2443 dissect_h282_ProgramNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2444   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2445                                                             1U, 1023U, NULL, FALSE);
2446
2447   return offset;
2448 }
2449
2450
2451
2452 static int
2453 dissect_h282_INTEGER_0_24(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2454   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2455                                                             0U, 24U, NULL, FALSE);
2456
2457   return offset;
2458 }
2459
2460
2461
2462 static int
2463 dissect_h282_INTEGER_0_59(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2464   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2465                                                             0U, 59U, NULL, FALSE);
2466
2467   return offset;
2468 }
2469
2470
2471
2472 static int
2473 dissect_h282_INTEGER_0_99999(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2474   offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index,
2475                                                             0U, 99999U, NULL, FALSE);
2476
2477   return offset;
2478 }
2479
2480
2481 static const per_sequence_t ProgramDuration_sequence[] = {
2482   { &hf_h282_hours          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_24 },
2483   { &hf_h282_minutes        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_59 },
2484   { &hf_h282_seconds        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_59 },
2485   { &hf_h282_microseconds   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_99999 },
2486   { NULL, 0, 0, NULL }
2487 };
2488
2489 static int
2490 dissect_h282_ProgramDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2491   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2492                                    ett_h282_ProgramDuration, ProgramDuration_sequence);
2493
2494   return offset;
2495 }
2496
2497
2498 static const per_sequence_t PlaybackSpeed_sequence[] = {
2499   { &hf_h282_scaleFactor    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_10_1000 },
2500   { &hf_h282_multiplyFactor , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_BOOLEAN },
2501   { NULL, 0, 0, NULL }
2502 };
2503
2504 static int
2505 dissect_h282_PlaybackSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2506   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2507                                    ett_h282_PlaybackSpeed, PlaybackSpeed_sequence);
2508
2509   return offset;
2510 }
2511
2512
2513 static const per_sequence_t RecordForDuration_sequence[] = {
2514   { &hf_h282_hours          , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_24 },
2515   { &hf_h282_minutes        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_59 },
2516   { &hf_h282_seconds        , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_INTEGER_0_59 },
2517   { NULL, 0, 0, NULL }
2518 };
2519
2520 static int
2521 dissect_h282_RecordForDuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2522   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2523                                    ett_h282_RecordForDuration, RecordForDuration_sequence);
2524
2525   return offset;
2526 }
2527
2528
2529 static const per_sequence_t T_inputDevices_item_sequence[] = {
2530   { &hf_h282_deviceClass    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceClass },
2531   { &hf_h282_deviceIdentifier, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_DeviceID },
2532   { NULL, 0, 0, NULL }
2533 };
2534
2535 static int
2536 dissect_h282_T_inputDevices_item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2537   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2538                                    ett_h282_T_inputDevices_item, T_inputDevices_item_sequence);
2539
2540   return offset;
2541 }
2542
2543
2544 static const per_sequence_t T_inputDevices_set_of[1] = {
2545   { &hf_h282_inputDevices_item, ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_inputDevices_item },
2546 };
2547
2548 static int
2549 dissect_h282_T_inputDevices(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2550   offset = dissect_per_constrained_set_of(tvb, offset, actx, tree, hf_index,
2551                                              ett_h282_T_inputDevices, T_inputDevices_set_of,
2552                                              2, 64, FALSE);
2553
2554   return offset;
2555 }
2556
2557
2558 static const per_sequence_t DeviceInputs_sequence[] = {
2559   { &hf_h282_inputDevices   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_inputDevices },
2560   { NULL, 0, 0, NULL }
2561 };
2562
2563 static int
2564 dissect_h282_DeviceInputs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2565   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2566                                    ett_h282_DeviceInputs, DeviceInputs_sequence);
2567
2568   return offset;
2569 }
2570
2571
2572 static const value_string h282_ControlAttribute_vals[] = {
2573   {   0, "setDeviceState" },
2574   {   1, "setDeviceDate" },
2575   {   2, "setDeviceTime" },
2576   {   3, "setDevicePreset" },
2577   {   4, "setIrisMode" },
2578   {   5, "setFocusMode" },
2579   {   6, "setBackLightMode" },
2580   {   7, "setPointingMode" },
2581   {   8, "selectCameraLens" },
2582   {   9, "selectCameraFilter" },
2583   {  10, "gotoHomePosition" },
2584   {  11, "selectExternalLight" },
2585   {  12, "clearCameraLens" },
2586   {  13, "setCameraPanSpeed" },
2587   {  14, "setCameraTiltSpeed" },
2588   {  15, "setBackLight" },
2589   {  16, "setWhiteBalance" },
2590   {  17, "setWhiteBalanceMode" },
2591   {  18, "calibrateWhiteBalance" },
2592   {  19, "focusImage" },
2593   {  20, "captureImage" },
2594   {  21, "panContinuous" },
2595   {  22, "tiltContinuous" },
2596   {  23, "zoomContinuous" },
2597   {  24, "focusContinuous" },
2598   {  25, "setZoomPosition" },
2599   {  26, "setFocusPosition" },
2600   {  27, "setIrisPosition" },
2601   {  28, "setPanPosition" },
2602   {  29, "setTiltPosition" },
2603   {  30, "setZoomMagnification" },
2604   {  31, "setPanView" },
2605   {  32, "setTiltView" },
2606   {  33, "selectSlide" },
2607   {  34, "selectNextSlide" },
2608   {  35, "playAutoSlideShow" },
2609   {  36, "setAutoSlideDisplayTime" },
2610   {  37, "continuousRewindControl" },
2611   {  38, "continuousFastForwardControl" },
2612   {  39, "searchBackwardsControl" },
2613   {  40, "searchForwardsControl" },
2614   {  41, "pause" },
2615   {  42, "selectProgram" },
2616   {  43, "nextProgramSelect" },
2617   {  44, "gotoNormalPlayTimePoint" },
2618   {  45, "continuousPlayBackMode" },
2619   {  46, "setPlaybackSpeed" },
2620   {  47, "play" },
2621   {  48, "setAudioOutputMute" },
2622   {  49, "playToNormalPlayTimePoint" },
2623   {  50, "record" },
2624   {  51, "recordForDuration" },
2625   {  52, "configureVideoInputs" },
2626   {  53, "configureAudioInputs" },
2627   {  54, "nonStandardControl" },
2628   { 0, NULL }
2629 };
2630
2631 static const per_choice_t ControlAttribute_choice[] = {
2632   {   0, &hf_h282_setDeviceState , ASN1_EXTENSION_ROOT    , dissect_h282_DeviceState },
2633   {   1, &hf_h282_setDeviceDate  , ASN1_EXTENSION_ROOT    , dissect_h282_DeviceDate },
2634   {   2, &hf_h282_setDeviceTime  , ASN1_EXTENSION_ROOT    , dissect_h282_DeviceTime },
2635   {   3, &hf_h282_setDevicePreset, ASN1_EXTENSION_ROOT    , dissect_h282_DevicePreset },
2636   {   4, &hf_h282_setIrisMode    , ASN1_EXTENSION_ROOT    , dissect_h282_Mode },
2637   {   5, &hf_h282_setFocusMode   , ASN1_EXTENSION_ROOT    , dissect_h282_Mode },
2638   {   6, &hf_h282_setBackLightMode, ASN1_EXTENSION_ROOT    , dissect_h282_Mode },
2639   {   7, &hf_h282_setPointingMode, ASN1_EXTENSION_ROOT    , dissect_h282_PointingToggle },
2640   {   8, &hf_h282_selectCameraLens, ASN1_EXTENSION_ROOT    , dissect_h282_CameraLensNumber },
2641   {   9, &hf_h282_selectCameraFilter, ASN1_EXTENSION_ROOT    , dissect_h282_CameraFilterNumber },
2642   {  10, &hf_h282_gotoHomePosition, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2643   {  11, &hf_h282_selectExternalLight, ASN1_EXTENSION_ROOT    , dissect_h282_SelectExternalLight },
2644   {  12, &hf_h282_clearCameraLens, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2645   {  13, &hf_h282_setCameraPanSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_CameraPanSpeed },
2646   {  14, &hf_h282_setCameraTiltSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_CameraTiltSpeed },
2647   {  15, &hf_h282_setBackLight   , ASN1_EXTENSION_ROOT    , dissect_h282_BackLight },
2648   {  16, &hf_h282_setWhiteBalance, ASN1_EXTENSION_ROOT    , dissect_h282_WhiteBalance },
2649   {  17, &hf_h282_setWhiteBalanceMode, ASN1_EXTENSION_ROOT    , dissect_h282_Mode },
2650   {  18, &hf_h282_calibrateWhiteBalance, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2651   {  19, &hf_h282_focusImage     , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2652   {  20, &hf_h282_captureImage   , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2653   {  21, &hf_h282_panContinuous  , ASN1_EXTENSION_ROOT    , dissect_h282_PanContinuous },
2654   {  22, &hf_h282_tiltContinuous , ASN1_EXTENSION_ROOT    , dissect_h282_TiltContinuous },
2655   {  23, &hf_h282_zoomContinuous , ASN1_EXTENSION_ROOT    , dissect_h282_ZoomContinuous },
2656   {  24, &hf_h282_focusContinuous, ASN1_EXTENSION_ROOT    , dissect_h282_FocusContinuous },
2657   {  25, &hf_h282_setZoomPosition, ASN1_EXTENSION_ROOT    , dissect_h282_SetZoomPosition },
2658   {  26, &hf_h282_setFocusPosition, ASN1_EXTENSION_ROOT    , dissect_h282_SetFocusPosition },
2659   {  27, &hf_h282_setIrisPosition, ASN1_EXTENSION_ROOT    , dissect_h282_SetIrisPosition },
2660   {  28, &hf_h282_setPanPosition , ASN1_EXTENSION_ROOT    , dissect_h282_SetPanPosition },
2661   {  29, &hf_h282_setTiltPosition, ASN1_EXTENSION_ROOT    , dissect_h282_SetTiltPosition },
2662   {  30, &hf_h282_setZoomMagnification, ASN1_EXTENSION_ROOT    , dissect_h282_ZoomMagnification },
2663   {  31, &hf_h282_setPanView     , ASN1_EXTENSION_ROOT    , dissect_h282_PanView },
2664   {  32, &hf_h282_setTiltView    , ASN1_EXTENSION_ROOT    , dissect_h282_TiltView },
2665   {  33, &hf_h282_selectSlide    , ASN1_EXTENSION_ROOT    , dissect_h282_SlideNumber },
2666   {  34, &hf_h282_selectNextSlide, ASN1_EXTENSION_ROOT    , dissect_h282_SelectDirection },
2667   {  35, &hf_h282_playAutoSlideShow, ASN1_EXTENSION_ROOT    , dissect_h282_AutoSlideShowControl },
2668   {  36, &hf_h282_setAutoSlideDisplayTime, ASN1_EXTENSION_ROOT    , dissect_h282_AutoSlideDisplayTime },
2669   {  37, &hf_h282_continuousRewindControl, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2670   {  38, &hf_h282_continuousFastForwardControl, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2671   {  39, &hf_h282_searchBackwardsControl, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2672   {  40, &hf_h282_searchForwardsControl, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2673   {  41, &hf_h282_pause_01       , ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2674   {  42, &hf_h282_selectProgram  , ASN1_EXTENSION_ROOT    , dissect_h282_ProgramNumber },
2675   {  43, &hf_h282_nextProgramSelect, ASN1_EXTENSION_ROOT    , dissect_h282_SelectDirection },
2676   {  44, &hf_h282_gotoNormalPlayTimePoint, ASN1_EXTENSION_ROOT    , dissect_h282_ProgramDuration },
2677   {  45, &hf_h282_continuousPlayBackMode, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2678   {  46, &hf_h282_setPlaybackSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_PlaybackSpeed },
2679   {  47, &hf_h282_play           , ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2680   {  48, &hf_h282_setAudioOutputMute, ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2681   {  49, &hf_h282_playToNormalPlayTimePoint, ASN1_EXTENSION_ROOT    , dissect_h282_ProgramDuration },
2682   {  50, &hf_h282_record         , ASN1_EXTENSION_ROOT    , dissect_h282_BOOLEAN },
2683   {  51, &hf_h282_recordForDuration, ASN1_EXTENSION_ROOT    , dissect_h282_RecordForDuration },
2684   {  52, &hf_h282_configureVideoInputs, ASN1_EXTENSION_ROOT    , dissect_h282_DeviceInputs },
2685   {  53, &hf_h282_configureAudioInputs, ASN1_EXTENSION_ROOT    , dissect_h282_DeviceInputs },
2686   {  54, &hf_h282_nonStandardControl, ASN1_EXTENSION_ROOT    , dissect_h282_NonStandardParameter },
2687   { 0, NULL, 0, NULL }
2688 };
2689
2690 static int
2691 dissect_h282_ControlAttribute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2692   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2693                                  ett_h282_ControlAttribute, ControlAttribute_choice,
2694                                  NULL);
2695
2696   return offset;
2697 }
2698
2699
2700 static const value_string h282_StatusAttributeIdentifier_vals[] = {
2701   {   0, "getDeviceState" },
2702   {   1, "getDeviceDate" },
2703   {   2, "getDeviceTime" },
2704   {   3, "getdevicePreset" },
2705   {   4, "getIrisMode" },
2706   {   5, "getFocusMode" },
2707   {   6, "getBacklightMode" },
2708   {   7, "getPointingMode" },
2709   {   8, "getCameraLens" },
2710   {   9, "getCameraFilter" },
2711   {  10, "getExternalLight" },
2712   {  11, "getCameraPanSpeed" },
2713   {  12, "getCameraTiltSpeed" },
2714   {  13, "getBackLightMode" },
2715   {  14, "getBackLight" },
2716   {  15, "getWhiteBalance" },
2717   {  16, "getWhiteBalanceMode" },
2718   {  17, "getZoomPosition" },
2719   {  18, "getFocusPosition" },
2720   {  19, "getIrisPosition" },
2721   {  20, "getPanPosition" },
2722   {  21, "getTiltPosition" },
2723   {  22, "getSelectedSlide" },
2724   {  23, "getAutoSlideDisplayTime" },
2725   {  24, "getSelectedProgram" },
2726   {  25, "getStreamPlayerState" },
2727   {  26, "getCurrentProgramDuration" },
2728   {  27, "getPlaybackSpeed" },
2729   {  28, "getAudioOutputState" },
2730   {  29, "getConfigurableVideoInputs" },
2731   {  30, "getVideoInputs" },
2732   {  31, "getConfigurableAudioInputs" },
2733   {  32, "getAudioInputs" },
2734   {  33, "getNonStandardStatus" },
2735   { 0, NULL }
2736 };
2737
2738 static const per_choice_t StatusAttributeIdentifier_choice[] = {
2739   {   0, &hf_h282_getDeviceState , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2740   {   1, &hf_h282_getDeviceDate  , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2741   {   2, &hf_h282_getDeviceTime  , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2742   {   3, &hf_h282_getdevicePreset, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2743   {   4, &hf_h282_getIrisMode    , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2744   {   5, &hf_h282_getFocusMode   , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2745   {   6, &hf_h282_getBacklightMode, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2746   {   7, &hf_h282_getPointingMode, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2747   {   8, &hf_h282_getCameraLens  , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2748   {   9, &hf_h282_getCameraFilter, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2749   {  10, &hf_h282_getExternalLight, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2750   {  11, &hf_h282_getCameraPanSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2751   {  12, &hf_h282_getCameraTiltSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2752   {  13, &hf_h282_getBackLightMode, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2753   {  14, &hf_h282_getBackLight   , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2754   {  15, &hf_h282_getWhiteBalance, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2755   {  16, &hf_h282_getWhiteBalanceMode, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2756   {  17, &hf_h282_getZoomPosition, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2757   {  18, &hf_h282_getFocusPosition, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2758   {  19, &hf_h282_getIrisPosition, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2759   {  20, &hf_h282_getPanPosition , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2760   {  21, &hf_h282_getTiltPosition, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2761   {  22, &hf_h282_getSelectedSlide, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2762   {  23, &hf_h282_getAutoSlideDisplayTime, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2763   {  24, &hf_h282_getSelectedProgram, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2764   {  25, &hf_h282_getStreamPlayerState, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2765   {  26, &hf_h282_getCurrentProgramDuration, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2766   {  27, &hf_h282_getPlaybackSpeed, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2767   {  28, &hf_h282_getAudioOutputState, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2768   {  29, &hf_h282_getConfigurableVideoInputs, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2769   {  30, &hf_h282_getVideoInputs , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2770   {  31, &hf_h282_getConfigurableAudioInputs, ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2771   {  32, &hf_h282_getAudioInputs , ASN1_EXTENSION_ROOT    , dissect_h282_NULL },
2772   {  33, &hf_h282_getNonStandardStatus, ASN1_EXTENSION_ROOT    , dissect_h282_NonStandardIdentifier },
2773   { 0, NULL, 0, NULL }
2774 };
2775
2776 static int
2777 dissect_h282_StatusAttributeIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2778   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2779                                  ett_h282_StatusAttributeIdentifier, StatusAttributeIdentifier_choice,
2780                                  NULL);
2781
2782   return offset;
2783 }
2784
2785
2786 static const value_string h282_CurrentDeviceState_vals[] = {
2787   {   0, "deviceState" },
2788   {   1, "unknown" },
2789   { 0, NULL }
2790 };
2791
2792 static const per_choice_t CurrentDeviceState_choice[] = {
2793   {   0, &hf_h282_deviceState    , ASN1_NO_EXTENSIONS     , dissect_h282_DeviceState },
2794   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2795   { 0, NULL, 0, NULL }
2796 };
2797
2798 static int
2799 dissect_h282_CurrentDeviceState(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2800   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2801                                  ett_h282_CurrentDeviceState, CurrentDeviceState_choice,
2802                                  NULL);
2803
2804   return offset;
2805 }
2806
2807
2808 static const value_string h282_T_currentDay_vals[] = {
2809   {   0, "day" },
2810   {   1, "unknown" },
2811   { 0, NULL }
2812 };
2813
2814 static const per_choice_t T_currentDay_choice[] = {
2815   {   0, &hf_h282_day            , ASN1_NO_EXTENSIONS     , dissect_h282_Day },
2816   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2817   { 0, NULL, 0, NULL }
2818 };
2819
2820 static int
2821 dissect_h282_T_currentDay(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2822   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2823                                  ett_h282_T_currentDay, T_currentDay_choice,
2824                                  NULL);
2825
2826   return offset;
2827 }
2828
2829
2830 static const value_string h282_T_currentMonth_vals[] = {
2831   {   0, "month" },
2832   {   1, "unknown" },
2833   { 0, NULL }
2834 };
2835
2836 static const per_choice_t T_currentMonth_choice[] = {
2837   {   0, &hf_h282_month          , ASN1_NO_EXTENSIONS     , dissect_h282_Month },
2838   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2839   { 0, NULL, 0, NULL }
2840 };
2841
2842 static int
2843 dissect_h282_T_currentMonth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2844   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2845                                  ett_h282_T_currentMonth, T_currentMonth_choice,
2846                                  NULL);
2847
2848   return offset;
2849 }
2850
2851
2852 static const value_string h282_T_currentYear_vals[] = {
2853   {   0, "year" },
2854   {   1, "unknown" },
2855   { 0, NULL }
2856 };
2857
2858 static const per_choice_t T_currentYear_choice[] = {
2859   {   0, &hf_h282_year           , ASN1_NO_EXTENSIONS     , dissect_h282_Year },
2860   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2861   { 0, NULL, 0, NULL }
2862 };
2863
2864 static int
2865 dissect_h282_T_currentYear(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2866   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2867                                  ett_h282_T_currentYear, T_currentYear_choice,
2868                                  NULL);
2869
2870   return offset;
2871 }
2872
2873
2874 static const per_sequence_t CurrentDeviceDate_sequence[] = {
2875   { &hf_h282_currentDay     , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_currentDay },
2876   { &hf_h282_currentMonth   , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_currentMonth },
2877   { &hf_h282_currentYear    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_currentYear },
2878   { NULL, 0, 0, NULL }
2879 };
2880
2881 static int
2882 dissect_h282_CurrentDeviceDate(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2883   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2884                                    ett_h282_CurrentDeviceDate, CurrentDeviceDate_sequence);
2885
2886   return offset;
2887 }
2888
2889
2890 static const value_string h282_T_currentHour_vals[] = {
2891   {   0, "hour" },
2892   {   1, "unknown" },
2893   { 0, NULL }
2894 };
2895
2896 static const per_choice_t T_currentHour_choice[] = {
2897   {   0, &hf_h282_hour           , ASN1_NO_EXTENSIONS     , dissect_h282_Hour },
2898   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2899   { 0, NULL, 0, NULL }
2900 };
2901
2902 static int
2903 dissect_h282_T_currentHour(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2904   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2905                                  ett_h282_T_currentHour, T_currentHour_choice,
2906                                  NULL);
2907
2908   return offset;
2909 }
2910
2911
2912 static const value_string h282_T_currentMinute_vals[] = {
2913   {   0, "minute" },
2914   {   1, "unknown" },
2915   { 0, NULL }
2916 };
2917
2918 static const per_choice_t T_currentMinute_choice[] = {
2919   {   0, &hf_h282_minute         , ASN1_NO_EXTENSIONS     , dissect_h282_Minute },
2920   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2921   { 0, NULL, 0, NULL }
2922 };
2923
2924 static int
2925 dissect_h282_T_currentMinute(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2926   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2927                                  ett_h282_T_currentMinute, T_currentMinute_choice,
2928                                  NULL);
2929
2930   return offset;
2931 }
2932
2933
2934 static const per_sequence_t CurrentDeviceTime_sequence[] = {
2935   { &hf_h282_currentHour    , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_currentHour },
2936   { &hf_h282_currentMinute  , ASN1_NO_EXTENSIONS     , ASN1_NOT_OPTIONAL, dissect_h282_T_currentMinute },
2937   { NULL, 0, 0, NULL }
2938 };
2939
2940 static int
2941 dissect_h282_CurrentDeviceTime(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2942   offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index,
2943                                    ett_h282_CurrentDeviceTime, CurrentDeviceTime_sequence);
2944
2945   return offset;
2946 }
2947
2948
2949 static const value_string h282_CurrentDevicePreset_vals[] = {
2950   {   0, "preset" },
2951   {   1, "unknown" },
2952   { 0, NULL }
2953 };
2954
2955 static const per_choice_t CurrentDevicePreset_choice[] = {
2956   {   0, &hf_h282_preset         , ASN1_NO_EXTENSIONS     , dissect_h282_PresetNumber },
2957   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2958   { 0, NULL, 0, NULL }
2959 };
2960
2961 static int
2962 dissect_h282_CurrentDevicePreset(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2963   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2964                                  ett_h282_CurrentDevicePreset, CurrentDevicePreset_choice,
2965                                  NULL);
2966
2967   return offset;
2968 }
2969
2970
2971 static const value_string h282_CurrentMode_vals[] = {
2972   {   0, "mode" },
2973   {   1, "unknown" },
2974   { 0, NULL }
2975 };
2976
2977 static const per_choice_t CurrentMode_choice[] = {
2978   {   0, &hf_h282_mode_01        , ASN1_NO_EXTENSIONS     , dissect_h282_Mode },
2979   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
2980   { 0, NULL, 0, NULL }
2981 };
2982
2983 static int
2984 dissect_h282_CurrentMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
2985   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
2986                                  ett_h282_CurrentMode, CurrentMode_choice,
2987                                  NULL);
2988
2989   return offset;
2990 }
2991
2992
2993 static const value_string h282_CurrentPointingMode_vals[] = {
2994   {   0, "automatic" },
2995   {   1, "manual" },
2996   {   2, "unknown" },
2997   { 0, NULL }
2998 };
2999
3000 static const per_choice_t CurrentPointingMode_choice[] = {
3001   {   0, &hf_h282_automatic      , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3002   {   1, &hf_h282_manual         , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3003   {   2, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3004   { 0, NULL, 0, NULL }
3005 };
3006
3007 static int
3008 dissect_h282_CurrentPointingMode(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3009   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3010                                  ett_h282_CurrentPointingMode, CurrentPointingMode_choice,
3011                                  NULL);
3012
3013   return offset;
3014 }
3015
3016
3017 static const value_string h282_CurrentCameraLensNumber_vals[] = {
3018   {   0, "lensNumber" },
3019   {   1, "unknown" },
3020   { 0, NULL }
3021 };
3022
3023 static const per_choice_t CurrentCameraLensNumber_choice[] = {
3024   {   0, &hf_h282_lensNumber_01  , ASN1_NO_EXTENSIONS     , dissect_h282_CameraLensNumber },
3025   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3026   { 0, NULL, 0, NULL }
3027 };
3028
3029 static int
3030 dissect_h282_CurrentCameraLensNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3031   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3032                                  ett_h282_CurrentCameraLensNumber, CurrentCameraLensNumber_choice,
3033                                  NULL);
3034
3035   return offset;
3036 }
3037
3038
3039 static const value_string h282_CurrentCameraFilterNumber_vals[] = {
3040   {   0, "lensNumber" },
3041   {   1, "unknown" },
3042   { 0, NULL }
3043 };
3044
3045 static const per_choice_t CurrentCameraFilterNumber_choice[] = {
3046   {   0, &hf_h282_lensNumber_02  , ASN1_NO_EXTENSIONS     , dissect_h282_CameraFilterNumber },
3047   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3048   { 0, NULL, 0, NULL }
3049 };
3050
3051 static int
3052 dissect_h282_CurrentCameraFilterNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3053   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3054                                  ett_h282_CurrentCameraFilterNumber, CurrentCameraFilterNumber_choice,
3055                                  NULL);
3056
3057   return offset;
3058 }
3059
3060
3061 static const value_string h282_CurrentExternalLight_vals[] = {
3062   {   0, "lightNumber" },
3063   {   1, "none" },
3064   {   2, "unknown" },
3065   { 0, NULL }
3066 };
3067
3068 static const per_choice_t CurrentExternalLight_choice[] = {
3069   {   0, &hf_h282_lightNumber    , ASN1_NO_EXTENSIONS     , dissect_h282_INTEGER_1_10 },
3070   {   1, &hf_h282_none           , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3071   {   2, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3072   { 0, NULL, 0, NULL }
3073 };
3074
3075 static int
3076 dissect_h282_CurrentExternalLight(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3077   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3078                                  ett_h282_CurrentExternalLight, CurrentExternalLight_choice,
3079                                  NULL);
3080
3081   return offset;
3082 }
3083
3084
3085 static const value_string h282_CurrentCameraPanSpeed_vals[] = {
3086   {   0, "speed" },
3087   {   1, "unknown" },
3088   { 0, NULL }
3089 };
3090
3091 static const per_choice_t CurrentCameraPanSpeed_choice[] = {
3092   {   0, &hf_h282_speed          , ASN1_NO_EXTENSIONS     , dissect_h282_CameraPanSpeed },
3093   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3094   { 0, NULL, 0, NULL }
3095 };
3096
3097 static int
3098 dissect_h282_CurrentCameraPanSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3099   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3100                                  ett_h282_CurrentCameraPanSpeed, CurrentCameraPanSpeed_choice,
3101                                  NULL);
3102
3103   return offset;
3104 }
3105
3106
3107 static const value_string h282_CurrentCameraTiltSpeed_vals[] = {
3108   {   0, "speed" },
3109   {   1, "unknown" },
3110   { 0, NULL }
3111 };
3112
3113 static const per_choice_t CurrentCameraTiltSpeed_choice[] = {
3114   {   0, &hf_h282_speed_01       , ASN1_NO_EXTENSIONS     , dissect_h282_CameraTiltSpeed },
3115   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3116   { 0, NULL, 0, NULL }
3117 };
3118
3119 static int
3120 dissect_h282_CurrentCameraTiltSpeed(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3121   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3122                                  ett_h282_CurrentCameraTiltSpeed, CurrentCameraTiltSpeed_choice,
3123                                  NULL);
3124
3125   return offset;
3126 }
3127
3128
3129 static const value_string h282_CurrentBackLight_vals[] = {
3130   {   0, "backLight" },
3131   {   1, "unknown" },
3132   { 0, NULL }
3133 };
3134
3135 static const per_choice_t CurrentBackLight_choice[] = {
3136   {   0, &hf_h282_backLight      , ASN1_NO_EXTENSIONS     , dissect_h282_BackLight },
3137   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3138   { 0, NULL, 0, NULL }
3139 };
3140
3141 static int
3142 dissect_h282_CurrentBackLight(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3143   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3144                                  ett_h282_CurrentBackLight, CurrentBackLight_choice,
3145                                  NULL);
3146
3147   return offset;
3148 }
3149
3150
3151 static const value_string h282_CurrentWhiteBalance_vals[] = {
3152   {   0, "whiteBalance" },
3153   {   1, "unknown" },
3154   { 0, NULL }
3155 };
3156
3157 static const per_choice_t CurrentWhiteBalance_choice[] = {
3158   {   0, &hf_h282_whiteBalance   , ASN1_NO_EXTENSIONS     , dissect_h282_WhiteBalance },
3159   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3160   { 0, NULL, 0, NULL }
3161 };
3162
3163 static int
3164 dissect_h282_CurrentWhiteBalance(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3165   offset = dissect_per_choice(tvb, offset, actx, tree, hf_index,
3166                                  ett_h282_CurrentWhiteBalance, CurrentWhiteBalance_choice,
3167                                  NULL);
3168
3169   return offset;
3170 }
3171
3172
3173 static const value_string h282_CurrentZoomPosition_vals[] = {
3174   {   0, "zoomPosition" },
3175   {   1, "unknown" },
3176   { 0, NULL }
3177 };
3178
3179 static const per_choice_t CurrentZoomPosition_choice[] = {
3180   {   0, &hf_h282_zoomPosition   , ASN1_NO_EXTENSIONS     , dissect_h282_ZoomPosition },
3181   {   1, &hf_h282_unknown        , ASN1_NO_EXTENSIONS     , dissect_h282_NULL },
3182   { 0, NULL, 0, NULL }
3183 };
3184
3185 static int
3186 dissect_h282_CurrentZoomPosition(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
3187   offset