summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/h282
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/h282
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/h282')
-rw-r--r--epan/dissectors/asn1/h282/CMakeLists.txt34
-rw-r--r--epan/dissectors/asn1/h282/RDC-PROTOCOL.asn981
-rw-r--r--epan/dissectors/asn1/h282/h282.cnf56
-rw-r--r--epan/dissectors/asn1/h282/packet-h282-template.c86
4 files changed, 1157 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/h282/CMakeLists.txt b/epan/dissectors/asn1/h282/CMakeLists.txt
new file mode 100644
index 00000000..080e9ed0
--- /dev/null
+++ b/epan/dissectors/asn1/h282/CMakeLists.txt
@@ -0,0 +1,34 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+set( PROTOCOL_NAME h282 )
+
+set( PROTO_OPT )
+
+set( EXT_ASN_FILE_LIST
+)
+
+set( ASN_FILE_LIST
+ RDC-PROTOCOL.asn
+)
+
+set( EXTRA_DIST
+ ${ASN_FILE_LIST}
+ packet-${PROTOCOL_NAME}-template.c
+ ${PROTOCOL_NAME}.cnf
+)
+
+set( SRC_FILES
+ ${EXTRA_DIST}
+ ${EXT_ASN_FILE_LIST}
+)
+
+set( A2W_FLAGS )
+
+ASN2WRS()
diff --git a/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn b/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn
new file mode 100644
index 00000000..c6ec2d8b
--- /dev/null
+++ b/epan/dissectors/asn1/h282/RDC-PROTOCOL.asn
@@ -0,0 +1,981 @@
+-- http://www.itu.int/ITU-T/asn1/database/itu-t/h/h282/1999/RDC-PROTOCOL.asn
+
+-- Module RDC-PROTOCOL (H.282:02/1998)
+RDC-PROTOCOL {itu-t(0) recommendation(0) h 282 version(0) 1} DEFINITIONS
+AUTOMATIC TAGS ::=
+BEGIN
+
+-- Export all symbols
+-- ==========================================================================
+-- Part 1: Message Components
+-- ==========================================================================
+H221NonStandardIdentifier ::= OCTET STRING(SIZE (4..255))
+
+-- First four octets shall be country code and
+-- Manufacturer code, assigned as specified in
+-- H.221 Annex A for NS-cap and NS-comm
+Key ::= CHOICE -- Identifier of a standard or non-standard object
+ {
+ object OBJECT IDENTIFIER,
+ h221NonStandard H221NonStandardIdentifier
+}
+
+NonStandardParameter ::= SEQUENCE {key Key,
+ data OCTET STRING
+}
+
+Handle ::= INTEGER(0..4294967295)
+
+NonStandardIdentifier ::= CHOICE {
+ object OBJECT IDENTIFIER,
+ h221nonStandard H221NonStandardIdentifier
+}
+
+TextString ::=
+ BMPString
+ (SIZE (0..255)) -- Basic Multilingual Plane of ISO/IEC 10646-1 (Unicode)
+
+
+DeviceClass ::= CHOICE {
+ camera NULL,
+ microphone NULL,
+ streamPlayerRecorder NULL,
+ slideProjector NULL,
+ lightSource NULL,
+ sourceCombiner NULL,
+ nonStandardDevice NonStandardIdentifier
+}
+
+DeviceID ::= INTEGER(0..127)
+
+StreamID ::= INTEGER(0..65535)
+
+DeviceProfile ::= SEQUENCE {
+ deviceID DeviceID,
+ audioSourceFlag BOOLEAN,
+ audioSinkFlag BOOLEAN,
+ videoSourceFlag BOOLEAN,
+ videoSinkFlag BOOLEAN,
+ remoteControlFlag BOOLEAN,
+ instanceNumber INTEGER(0..255),
+ deviceName TextString OPTIONAL,
+ ...
+}
+
+StreamProfile ::= SEQUENCE {
+ streamID StreamID,
+ videoStreamFlag BOOLEAN,
+ sourceChangeFlag BOOLEAN,
+ streamName TextString OPTIONAL,
+ ...
+}
+
+CapabilityID ::= CHOICE {
+ standard INTEGER(0..65535), -- Assigned by this specification
+ nonStandard Key
+}
+
+NonCollapsingCapabilities ::=
+ SET OF
+ SEQUENCE {capabilityID CapabilityID,
+ applicationData
+ CHOICE {deviceList SET SIZE (0..127) OF DeviceProfile,
+ streamList SET SIZE (0..127) OF StreamProfile
+ }}
+
+--
+-- Attribute parameter types
+--
+Day ::= INTEGER(1..31)
+
+Month ::= INTEGER(1..12)
+
+Year ::= INTEGER(1980..2999)
+
+Hour ::= INTEGER(0..23)
+
+Minute ::= INTEGER(0..59)
+
+DeviceText ::= OCTET STRING(SIZE (0..32))
+
+PanPosition ::= INTEGER(-18000..18000) -- 100ths of a degree
+
+
+TiltPosition ::= INTEGER(-18000..18000) -- 100ths of a degree
+
+
+ZoomPosition ::= INTEGER(-1023..1023)
+
+IrisPosition ::= INTEGER(-127..127)
+
+FocusPosition ::= INTEGER(-127..127)
+
+CameraPanSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec
+
+
+CameraTiltSpeed ::= INTEGER(1..18000) -- 100ths of a degree/sec
+
+
+BackLight ::= INTEGER(0..255)
+
+WhiteBalance ::= INTEGER(0..255)
+
+PresetNumber ::= INTEGER(1..255)
+
+StreamPlayerState ::= CHOICE {
+ playing NULL,
+ recording NULL,
+ pausedOnRecord NULL,
+ pausedOnPlay NULL,
+ rewinding NULL,
+ fastForwarding NULL,
+ searchingForwards NULL,
+ searchingBackwards NULL,
+ stopped NULL,
+ programUnavailable NULL
+}
+
+DevicePresetCapability ::= SEQUENCE {
+ maxNumber PresetNumber,
+ presetCapability
+ SET SIZE (0..255) OF
+ SEQUENCE {presetNumber PresetNumber,
+ storeModeSupported BOOLEAN,
+ presetTextLabel DeviceText} OPTIONAL
+}
+
+CameraFilterCapability ::= SEQUENCE {
+ maxNumberOfFilters INTEGER(2..255),
+ filterTextLabel
+ SET SIZE (0..255) OF
+ SEQUENCE {filterNumber INTEGER(1..255),
+ filterTextLabel DeviceText} OPTIONAL
+}
+
+CameraLensCapability ::= SEQUENCE {
+ maxNumberOfLens INTEGER(2..255),
+ accessoryTextLabel
+ SET SIZE (0..255) OF
+ SEQUENCE {lensNumber INTEGER(1..255),
+ lensTextLabel DeviceText} OPTIONAL
+}
+
+ExternalCameraLightCapability ::= SEQUENCE {
+ maxNumber INTEGER(1..10),
+ lightTextLabel
+ SET SIZE (0..10) OF
+ SEQUENCE {lightNumber INTEGER(1..10),
+ lightLabel DeviceText} OPTIONAL
+}
+
+CameraPanSpeedCapability ::= SEQUENCE {
+ maxSpeed CameraPanSpeed,
+ minSpeed CameraPanSpeed,
+ speedStepSize CameraPanSpeed
+}
+
+CameraTiltSpeedCapability ::= SEQUENCE {
+ maxSpeed CameraTiltSpeed,
+ minSpeed CameraTiltSpeed,
+ speedStepSize CameraTiltSpeed
+}
+
+MaxBacklight ::= INTEGER(1..255)
+
+MaxWhiteBalance ::= INTEGER(1..255)
+
+MinZoomPositionSetSize ::= INTEGER(1..1023)
+
+MinFocusPositionStepSize ::= INTEGER(1..127)
+
+MinIrisPositionStepSize ::= INTEGER(1..127)
+
+PanPositionCapability ::= SEQUENCE {
+ maxLeft INTEGER(-18000..0), -- Max pan left
+ maxRight INTEGER(0..18000), -- Max pan right
+ minStepSize INTEGER(1..18000)
+}
+
+TiltPositionCapability ::= SEQUENCE {
+ maxDown INTEGER(-18000..0), -- Max tilt down
+ maxUp INTEGER(0..18000), -- Max tilt up
+ minStepSize INTEGER(1..18000)
+}
+
+MinZoomMagnificationStepSize ::= INTEGER(1..1000)
+
+MaxNumberOfSlides ::= INTEGER(1..1024)
+
+MaxSlideDisplayTime ::= INTEGER(1..255) -- Max time in seconds
+
+
+MaxNumberOfPrograms ::= INTEGER(1..1023)
+
+PlayBackSpeedCapability ::= SEQUENCE {
+ multiplierFactors SET SIZE (1..64) OF INTEGER(10..1000),
+ divisorFactors SET SIZE (1..64) OF INTEGER(10..1000)
+}
+
+VideoInputsCapability ::= SEQUENCE {
+ numberOfDeviceInputs INTEGER(2..64),
+ numberOfDeviceRows INTEGER(1..64),
+ -- The Optional Device list is only included if the inputs are configurable
+ availableDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID} OPTIONAL
+}
+
+AudioInputsCapability ::= SEQUENCE {
+ numberOfDeviceInputs INTEGER(2..64),
+ -- The Optional Device list is only included if the inputs are configurable
+ availableDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID} OPTIONAL
+}
+
+DeviceAttribute ::= CHOICE {
+ deviceStateSupported NULL,
+ deviceDateSupported NULL,
+ deviceTimeSupported NULL,
+ devicePresetSupported DevicePresetCapability,
+ irisModeSupported NULL,
+ focusModeSupported NULL,
+ pointingModeSupported NULL,
+ cameraLensSupported CameraLensCapability,
+ cameraFilterSupported CameraFilterCapability,
+ homePositionSupported NULL,
+ externalCameraLightSupported ExternalCameraLightCapability,
+ clearCameraLensSupported NULL,
+ cameraPanSpeedSupported CameraPanSpeedCapability,
+ cameraTiltSpeedSupported CameraTiltSpeedCapability,
+ backLightModeSupported NULL,
+ backLightSettingSupported MaxBacklight,
+ whiteBalanceSettingSupported MaxWhiteBalance,
+ whiteBalanceModeSupported NULL,
+ calibrateWhiteBalanceSupported NULL,
+ focusImageSupported NULL,
+ captureImageSupported NULL,
+ panContinuousSupported NULL,
+ tiltContinuousSupported NULL,
+ zoomContinuousSupported NULL,
+ focusContinuousSupported NULL,
+ irisContinuousSupported NULL,
+ zoomPositionSupported MinZoomPositionSetSize,
+ focusPositionSupported MinFocusPositionStepSize,
+ irisPositionSupported MinIrisPositionStepSize,
+ panPositionSupported PanPositionCapability,
+ tiltPositionSupported TiltPositionCapability,
+ zoomMagnificationSupported MinZoomMagnificationStepSize,
+ panViewSupported NULL,
+ tiltViewSupported NULL,
+ selectSlideSupported MaxNumberOfSlides,
+ selectNextSlideSupported NULL,
+ slideShowModeSupported NULL,
+ playSlideShowSupported NULL,
+ setSlideDisplayTimeSupported MaxSlideDisplayTime,
+ continuousRewindSupported NULL,
+ continuousFastForwardSupported NULL,
+ searchBackwardsSupported NULL,
+ searchForwardsSupported NULL,
+ pauseSupported NULL,
+ selectProgramSupported MaxNumberOfPrograms,
+ nextProgramSupported NULL,
+ gotoNormalPlayTimePointSupported NULL,
+ readStreamPlayerStateSupported NULL,
+ readProgramDurationSupported NULL,
+ continuousPlayBackModeSupported NULL,
+ playbackSpeedSupported PlayBackSpeedCapability,
+ playSupported NULL,
+ setAudioOutputStateSupported NULL,
+ playToNormalPlayTimePointSupported NULL,
+ recordSupported NULL,
+ recordForDurationSupported NULL,
+ configurableVideoInputsSupported VideoInputsCapability,
+ videoInputsSupported VideoInputsCapability,
+ configurableAudioInputsSupported AudioInputsCapability,
+ audioInputsSupported AudioInputsCapability,
+ -- Attributes for Device Events
+ deviceLockStateChangedSupported NULL,
+ deviceAvailabilityChangedSupported NULL,
+ cameraPannedToLimitSupported NULL,
+ cameraTiltedToLimitSupported NULL,
+ cameraZoomedToLimitSupported NULL,
+ cameraFocusedToLimitSupported NULL,
+ autoSlideShowFinishedSupported NULL,
+ streamPlayerStateChangeSupported NULL,
+ streamPlayerProgramChangeSupported NULL,
+ nonStandardAttributeSupported NonStandardParameter,
+ ...
+}
+
+DeviceState ::= CHOICE {active NULL,
+ inactive NULL
+}
+
+DeviceDate ::= SEQUENCE {day Day,
+ month Month,
+ year Year
+}
+
+DeviceTime ::= SEQUENCE {hour Hour,
+ minute Minute
+}
+
+DevicePreset ::= SEQUENCE {
+ presetNumber PresetNumber,
+ mode CHOICE {store NULL,
+ activate NULL}
+}
+
+Mode ::= CHOICE {manual NULL,
+ auto NULL
+}
+
+PointingToggle ::= CHOICE {manual NULL,
+ auto NULL,
+ toggle NULL
+}
+
+SelectExternalLight ::= CHOICE {lightNumber INTEGER(1..10),
+ none NULL
+}
+
+PanContinuous ::= SEQUENCE {
+ panDirection
+ CHOICE {left NULL,
+ right NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+TiltContinuous ::= SEQUENCE {
+ tiltDirection
+ CHOICE {up NULL,
+ down NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+ZoomContinuous ::= SEQUENCE {
+ zoomDirection
+ CHOICE {telescopic NULL,
+ wide NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+FocusContinuous ::= SEQUENCE {
+ focusDirection
+ CHOICE {near NULL,
+ far NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+IrisContinuous ::= SEQUENCE {
+ irisDirection
+ CHOICE {darker NULL,
+ lighter NULL,
+ stop NULL,
+ continue NULL},
+ timeOut INTEGER(50..1000) -- Milliseconds
+}
+
+PositioningMode ::= CHOICE {relative NULL,
+ absolute NULL
+}
+
+CameraLensNumber ::= INTEGER(1..255)
+
+CameraFilterNumber ::= INTEGER(1..255)
+
+SetZoomPosition ::= SEQUENCE {
+ zoomPosition ZoomPosition,
+ positioningMode PositioningMode
+}
+
+SetFocusPosition ::= SEQUENCE {
+ focusPosition FocusPosition,
+ positioningMode PositioningMode
+}
+
+SetIrisPosition ::= SEQUENCE {
+ irisPosition IrisPosition,
+ positioningMode PositioningMode
+}
+
+SetPanPosition ::= SEQUENCE {
+ panPosition PanPosition,
+ positioningMode PositioningMode
+}
+
+SetTiltPosition ::= SEQUENCE {
+ tiltPosition TiltPosition,
+ positioningMode PositioningMode
+}
+
+ZoomMagnification ::= INTEGER(10..1000)
+
+PanView ::= INTEGER(-1000..1000)
+
+TiltView ::= INTEGER(-1000..1000)
+
+SlideNumber ::= INTEGER(0..1023)
+
+SelectDirection ::= CHOICE {next NULL,
+ previous NULL
+}
+
+AutoSlideShowControl ::= CHOICE {start NULL,
+ stop NULL,
+ pause NULL
+}
+
+AutoSlideDisplayTime ::=
+ INTEGER(1..255) -- Automatic slide display time in seconds
+
+
+ProgramNumber ::= INTEGER(1..1023)
+
+ProgramDuration ::= SEQUENCE {
+ hours INTEGER(0..24),
+ minutes INTEGER(0..59),
+ seconds INTEGER(0..59),
+ microseconds INTEGER(0..99999)
+}
+
+PlaybackSpeed ::= SEQUENCE {
+ scaleFactor INTEGER(10..1000),
+ multiplyFactor BOOLEAN -- TRUE to multiply, FALSE to divide
+}
+
+RecordForDuration ::= SEQUENCE {
+ hours INTEGER(0..24),
+ minutes INTEGER(0..59),
+ seconds INTEGER(0..59)
+}
+
+DeviceInputs ::= SEQUENCE {
+ -- When used with the configurableVideoInputs type this device list must only contain
+ -- devices that source a video stream.
+ -- When used with the configurableAudioInputs type this device list must only contain
+ -- devices that source an audio stream.
+ inputDevices
+ SET SIZE (2..64) OF
+ SEQUENCE {deviceClass DeviceClass,
+ deviceIdentifier DeviceID}
+}
+
+ControlAttribute ::= CHOICE {
+ setDeviceState DeviceState,
+ setDeviceDate DeviceDate,
+ setDeviceTime DeviceTime,
+ setDevicePreset DevicePreset,
+ setIrisMode Mode,
+ setFocusMode Mode,
+ setBackLightMode Mode,
+ setPointingMode PointingToggle,
+ selectCameraLens CameraLensNumber,
+ selectCameraFilter CameraFilterNumber,
+ gotoHomePosition NULL,
+ selectExternalLight SelectExternalLight,
+ clearCameraLens NULL,
+ setCameraPanSpeed CameraPanSpeed,
+ setCameraTiltSpeed CameraTiltSpeed,
+ setBackLight BackLight,
+ setWhiteBalance WhiteBalance,
+ setWhiteBalanceMode Mode,
+ calibrateWhiteBalance NULL,
+ focusImage NULL,
+ captureImage NULL,
+ panContinuous PanContinuous,
+ tiltContinuous TiltContinuous,
+ zoomContinuous ZoomContinuous,
+ focusContinuous FocusContinuous,
+ setZoomPosition SetZoomPosition,
+ setFocusPosition SetFocusPosition,
+ setIrisPosition SetIrisPosition,
+ setPanPosition SetPanPosition,
+ setTiltPosition SetTiltPosition,
+ setZoomMagnification ZoomMagnification,
+ setPanView PanView,
+ setTiltView TiltView,
+ selectSlide SlideNumber,
+ selectNextSlide SelectDirection,
+ playAutoSlideShow AutoSlideShowControl,
+ setAutoSlideDisplayTime AutoSlideDisplayTime,
+ continuousRewindControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ continuousFastForwardControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ searchBackwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ searchForwardsControl BOOLEAN, -- TRUE to start, FALSE to Stop
+ pause BOOLEAN, -- TRUE to pause, FALSE to release
+ selectProgram ProgramNumber,
+ nextProgramSelect SelectDirection,
+ gotoNormalPlayTimePoint ProgramDuration,
+ continuousPlayBackMode BOOLEAN, -- TRUE to set continuous mode
+ setPlaybackSpeed PlaybackSpeed,
+ play BOOLEAN, -- TRUE to pause, FALSE to release
+ setAudioOutputMute BOOLEAN, -- TRUE to mute, FALSE to unmute
+ playToNormalPlayTimePoint ProgramDuration,
+ record BOOLEAN, -- TRUE to start, FALSE to Stop
+ recordForDuration RecordForDuration,
+ configureVideoInputs DeviceInputs, -- Device list contains Video devices
+ configureAudioInputs DeviceInputs, -- Device list contains Audio Devices
+ nonStandardControl NonStandardParameter,
+ ...
+}
+
+StatusAttributeIdentifier ::= CHOICE {
+ getDeviceState NULL,
+ getDeviceDate NULL,
+ getDeviceTime NULL,
+ getdevicePreset NULL,
+ getIrisMode NULL,
+ getFocusMode NULL,
+ getBacklightMode NULL,
+ getPointingMode NULL,
+ getCameraLens NULL,
+ getCameraFilter NULL,
+ getExternalLight NULL,
+ getCameraPanSpeed NULL,
+ getCameraTiltSpeed NULL,
+ getBackLightMode NULL,
+ getBackLight NULL,
+ getWhiteBalance NULL,
+ getWhiteBalanceMode NULL,
+ getZoomPosition NULL,
+ getFocusPosition NULL,
+ getIrisPosition NULL,
+ getPanPosition NULL,
+ getTiltPosition NULL,
+ getSelectedSlide NULL,
+ getAutoSlideDisplayTime NULL,
+ getSelectedProgram NULL,
+ getStreamPlayerState NULL,
+ getCurrentProgramDuration NULL,
+ getPlaybackSpeed NULL,
+ getAudioOutputState NULL,
+ getConfigurableVideoInputs NULL,
+ getVideoInputs NULL,
+ getConfigurableAudioInputs NULL,
+ getAudioInputs NULL,
+ getNonStandardStatus NonStandardIdentifier,
+ ...
+}
+
+CurrentDeviceState ::= CHOICE {deviceState DeviceState,
+ unknown NULL
+}
+
+CurrentDeviceDate ::= SEQUENCE {
+ currentDay CHOICE {day Day,
+ unknown NULL},
+ currentMonth CHOICE {month Month,
+ unknown NULL},
+ currentYear CHOICE {year Year,
+ unknown NULL}
+}
+
+CurrentDeviceTime ::= SEQUENCE {
+ currentHour CHOICE {hour Hour,
+ unknown NULL},
+ currentMinute CHOICE {minute Minute,
+ unknown NULL}
+}
+
+CurrentDevicePreset ::= CHOICE {preset PresetNumber,
+ unknown NULL
+}
+
+CurrentMode ::= CHOICE {mode Mode,
+ unknown NULL
+}
+
+CurrentPointingMode ::= CHOICE {
+ automatic NULL,
+ manual NULL,
+ unknown NULL
+}
+
+CurrentCameraLensNumber ::= CHOICE {
+ lensNumber CameraLensNumber,
+ unknown NULL
+}
+
+CurrentCameraFilterNumber ::= CHOICE {
+ lensNumber CameraFilterNumber,
+ unknown NULL
+}
+
+CurrentExternalLight ::= CHOICE {
+ lightNumber INTEGER(1..10),
+ none NULL,
+ unknown NULL
+}
+
+CurrentCameraPanSpeed ::= CHOICE {speed CameraPanSpeed,
+ unknown NULL
+}
+
+CurrentCameraTiltSpeed ::= CHOICE {speed CameraTiltSpeed,
+ unknown NULL
+}
+
+CurrentBackLight ::= CHOICE {backLight BackLight,
+ unknown NULL
+}
+
+CurrentWhiteBalance ::= CHOICE {whiteBalance WhiteBalance,
+ unknown NULL
+}
+
+CurrentZoomPosition ::= CHOICE {zoomPosition ZoomPosition,
+ unknown NULL
+}
+
+CurrentFocusPosition ::= CHOICE {
+ focusPosition FocusPosition,
+ unknown NULL
+}
+
+CurrentIrisPosition ::= CHOICE {irisPosition IrisPosition,
+ unknown NULL
+}
+
+CurrentPanPosition ::= CHOICE {panPosition PanPosition,
+ unknown NULL
+}
+
+CurrentTiltPosition ::= CHOICE {tiltPosition TiltPosition,
+ unknown NULL
+}
+
+CurrentSlide ::= CHOICE {slide SlideNumber,
+ unknown NULL
+}
+
+CurrentAutoSlideDisplayTime ::= CHOICE {
+ time AutoSlideDisplayTime,
+ unknown NULL
+}
+
+CurrentSelectedProgram ::= CHOICE {program ProgramNumber,
+ unknown NULL
+}
+
+CurrentStreamPlayerState ::= CHOICE {state StreamPlayerState,
+ unknown NULL
+}
+
+CurrentPlaybackSpeed ::= CHOICE {speed PlaybackSpeed,
+ unknown NULL
+}
+
+CurrentAudioOutputMute ::= CHOICE {
+ mute BOOLEAN, -- TRUE if muted
+ unknown NULL
+}
+
+StatusAttribute ::= CHOICE {
+ currentdeviceState CurrentDeviceState,
+ currentDeviceDate CurrentDeviceDate,
+ currentDeviceTime CurrentDeviceTime,
+ currentDevicePreset CurrentDevicePreset,
+ currentIrisMode CurrentMode,
+ currentFocusMode CurrentMode,
+ currentBackLightMode CurrentMode,
+ currentPointingMode CurrentPointingMode,
+ currentCameraLens CurrentCameraLensNumber,
+ currentCameraFilter CurrentCameraFilterNumber,
+ currentExternalLight CurrentExternalLight,
+ currentCameraPanSpeed CurrentCameraPanSpeed,
+ currentCameraTiltSpeed CurrentCameraTiltSpeed,
+ currentBackLight CurrentBackLight,
+ currentWhiteBalance CurrentWhiteBalance,
+ currentWhiteBalanceMode CurrentMode,
+ currentZoomPosition CurrentZoomPosition,
+ currentFocusPosition CurrentFocusPosition,
+ currentIrisPosition CurrentIrisPosition,
+ currentPanPosition CurrentPanPosition,
+ currentTiltPosition CurrentTiltPosition,
+ currentSlide CurrentSlide,
+ currentAutoSlideDisplayTime CurrentAutoSlideDisplayTime,
+ currentSelectedProgram CurrentSelectedProgram,
+ currentstreamPlayerState CurrentStreamPlayerState,
+ currentProgramDuration ProgramDuration,
+ currentPlaybackSpeed CurrentPlaybackSpeed,
+ currentAudioOutputMute CurrentAudioOutputMute,
+ configurableVideoInputs DeviceInputs,
+ videoInputs DeviceInputs,
+ configurableAudioInputs DeviceInputs,
+ audioInputs DeviceInputs,
+ nonStandardStatus NonStandardParameter,
+ ...
+}
+
+DeviceEventIdentifier ::= CHOICE {
+ requestDeviceLockChanged NULL,
+ requestDeviceAvailabilityChanged NULL,
+ requestCameraPannedToLimit NULL,
+ requestCameraTiltedToLimit NULL,
+ requestCameraZoomedToLimit NULL,
+ requestCameraFocusedToLimit NULL,
+ requestAutoSlideShowFinished NULL,
+ requestStreamPlayerStateChange NULL,
+ requestStreamPlayerProgramChange NULL,
+ requestNonStandardEvent NonStandardIdentifier,
+ ...
+}
+
+CameraPannedToLimit ::= CHOICE {left NULL,
+ right NULL
+}
+
+CameraTiltedToLimit ::= CHOICE {up NULL,
+ down NULL
+}
+
+CameraZoomedToLimit ::= CHOICE {telescopic NULL,
+ wide NULL
+}
+
+CameraFocusedToLimit ::= CHOICE {near NULL,
+ far NULL
+}
+
+DeviceEvent ::= CHOICE {
+ deviceLockChanged BOOLEAN, -- TRUE if now locked FALSE if now unlocked
+ deviceAvailabilityChanged BOOLEAN, -- TRUE if available FALSE if now unavailable
+ cameraPannedToLimit CameraPannedToLimit,
+ cameraTiltedToLimit CameraTiltedToLimit,
+ cameraZoomedToLimit CameraZoomedToLimit,
+ cameraFocusedToLimit CameraFocusedToLimit,
+ autoSlideShowFinished NULL,
+ streamPlayerStateChange StreamPlayerState,
+ streamPlayerProgramChange ProgramNumber,
+ nonStandardEvent NonStandardParameter,
+ ...
+}
+
+-- ==========================================================================
+-- Part 2: PDU Messages
+-- ==========================================================================
+SourceSelectRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ streamIdentifier StreamID,
+ ...
+}
+
+SourceSelectResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ deviceUnavailable NULL,
+ invalidStreamID NULL,
+ currentDeviceIsLocked NULL,
+ deviceIncompatible NULL,
+ ...},
+ ...
+}
+
+SourceEventsRequest ::= SEQUENCE {
+ requestHandle Handle,
+ streamIdentifier StreamID,
+ sourceEventNotify BOOLEAN, -- TRUE to request source events
+ ...
+}
+
+SourceEventsResponse ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ result
+ CHOICE {successful NULL,
+ eventsNotSupported NULL,
+ invalidStreamID NULL,
+ ...},
+ ...
+}
+
+SourceChangeEventIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceAttributeRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceAttributeResponse ::= SEQUENCE {
+ requestHandle Handle,
+ deviceAttributeList SET OF DeviceAttribute OPTIONAL,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ ...},
+ ...
+}
+
+DeviceLockRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ lockFlag BOOLEAN, -- TRUE to lock
+ ...
+}
+
+DeviceLockResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ lockingNotSupported NULL,
+ deviceAlreadyLocked NULL,
+ ...},
+ ...
+}
+
+DeviceLockEnquireRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceLockEnquireResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {lockRequired NULL,
+ lockNotRequired NULL,
+ unknownDevice NULL,
+ ...},
+ ...
+}
+
+DeviceLockTerminatedIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ ...
+}
+
+DeviceControlRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ controlAttributeList SET SIZE (1..8) OF ControlAttribute,
+ ...
+}
+
+DeviceStatusEnquireRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ statusAttributeIdentifierList SET SIZE (1..16) OF StatusAttributeIdentifier,
+ ...
+}
+
+DeviceStatusEnquireResponse ::= SEQUENCE {
+ requestHandle Handle,
+ statusAttributeList SET SIZE (1..16) OF StatusAttribute OPTIONAL,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ deviceUnavailable NULL,
+ deviceAttributeError NULL,
+ ...},
+ ...
+}
+
+ConfigureDeviceEventsRequest ::= SEQUENCE {
+ requestHandle Handle,
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ deviceEventIdentifierList SET OF DeviceEventIdentifier,
+ ...
+}
+
+ConfigureDeviceEventsResponse ::= SEQUENCE {
+ requestHandle Handle,
+ result
+ CHOICE {successful NULL,
+ requestDenied NULL,
+ unknownDevice NULL,
+ deviceUnavailable NULL,
+ deviceAttributeError NULL,
+ ...},
+ ...
+}
+
+DeviceEventNotifyIndication ::= SEQUENCE {
+ deviceClass DeviceClass,
+ deviceID DeviceID,
+ deviceEventList SET SIZE (1..8) OF DeviceEvent,
+ ...
+}
+
+NonStandardPDU ::= SEQUENCE {nonStandardData NonStandardParameter,
+ ...
+}
+
+-- ==========================================================================
+-- Part 3: Messages sent using lower layer protocol
+-- ==========================================================================
+RDCPDU ::= CHOICE {
+ request RequestPDU,
+ response ResponsePDU,
+ indication IndicationPDU
+}
+
+RequestPDU ::= CHOICE {
+ sourceSelectRequest SourceSelectRequest,
+ sourceEventsRequest SourceEventsRequest,
+ deviceAttributeRequest DeviceAttributeRequest,
+ deviceLockRequest DeviceLockRequest,
+ deviceLockEnquireRequest DeviceLockEnquireRequest,
+ deviceControlRequest DeviceControlRequest,
+ deviceStatusEnquireRequest DeviceStatusEnquireRequest,
+ configureDeviceEventsRequest ConfigureDeviceEventsRequest,
+ nonStandardRequest NonStandardPDU,
+ ...
+}
+
+ResponsePDU ::= CHOICE {
+ sourceSelectResponse SourceSelectResponse,
+ sourceEventsResponse SourceEventsResponse,
+ deviceAttributeResponse DeviceAttributeResponse,
+ deviceLockResponse DeviceLockResponse,
+ deviceLockEnquireResponse DeviceLockEnquireResponse,
+ deviceStatusEnquireResponse DeviceStatusEnquireResponse,
+ configureDeviceEventsResponse ConfigureDeviceEventsResponse,
+ nonStandardResponse NonStandardPDU,
+ ...
+}
+
+IndicationPDU ::= CHOICE {
+ sourceChangeEventIndication SourceChangeEventIndication,
+ deviceLockTerminatedIndication DeviceLockTerminatedIndication,
+ deviceEventNotifyIndication DeviceEventNotifyIndication,
+ nonStandardIndication NonStandardPDU,
+ ...
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+
diff --git a/epan/dissectors/asn1/h282/h282.cnf b/epan/dissectors/asn1/h282/h282.cnf
new file mode 100644
index 00000000..10aeae36
--- /dev/null
+++ b/epan/dissectors/asn1/h282/h282.cnf
@@ -0,0 +1,56 @@
+# h282.cnf
+# H.282 conformation file
+# 2007 Tomas Kukosa
+
+#.OPT
+PER
+ALIGNED
+#.END
+
+#.OMIT_ASSIGNMENT
+IrisContinuous
+#.END
+
+#.PDU
+RDCPDU
+NonCollapsingCapabilities
+#.END
+
+#.FIELD_RENAME
+CameraFilterCapability/filterTextLabel/_item/filterTextLabel filterTextLabel_deviceText
+
+#.FIELD_ATTR
+CameraFilterCapability/filterTextLabel/_item/filterTextLabel ABBREV=filterTextLabel.deviceText
+
+#.FN_PARS RequestPDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_RequestPDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "RequestPDU/%s", p);
+#.END
+
+#.FN_PARS ResponsePDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_ResponsePDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "ResponsePDU/%s", p);
+#.END
+
+#.FN_PARS IndicationPDU
+ VAL_PTR = &msg_type
+#.FN_HDR
+ gint32 msg_type = -1;
+ const gchar *p = NULL;
+#.FN_FTR
+ p = try_val_to_str(msg_type, VALS(h282_IndicationPDU_vals));
+ if (p)
+ col_add_fstr(actx->pinfo->cinfo, COL_INFO, "IndicationPDU/%s", p);
+#.END
diff --git a/epan/dissectors/asn1/h282/packet-h282-template.c b/epan/dissectors/asn1/h282/packet-h282-template.c
new file mode 100644
index 00000000..d371529f
--- /dev/null
+++ b/epan/dissectors/asn1/h282/packet-h282-template.c
@@ -0,0 +1,86 @@
+/* packet-h282.c
+ * Routines for H.282 packet dissection
+ * 2007 Tomas Kukosa
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#include "config.h"
+
+#include <epan/packet.h>
+#include <epan/oids.h>
+#include <epan/asn1.h>
+
+#include "packet-per.h"
+
+#define PNAME "H.282 Remote Device Control"
+#define PSNAME "RDC"
+#define PFNAME "rdc"
+
+void proto_register_h282(void);
+void proto_reg_handoff_h282(void);
+
+/* Initialize the protocol and registered fields */
+static int proto_h282 = -1;
+#include "packet-h282-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_h282 = -1;
+#include "packet-h282-ett.c"
+
+/* Dissectors */
+
+/* Subdissectors */
+
+#include "packet-h282-fn.c"
+
+static int
+dissect_h282(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
+{
+ proto_item *ti = NULL;
+ proto_tree *h282_tree = NULL;
+
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, PSNAME);
+
+ ti = proto_tree_add_item(tree, proto_h282, tvb, 0, -1, ENC_NA);
+ h282_tree = proto_item_add_subtree(ti, ett_h282);
+
+ return dissect_RDCPDU_PDU(tvb, pinfo, h282_tree, NULL);
+}
+
+/*--- proto_register_h282 ----------------------------------------------*/
+void proto_register_h282(void) {
+
+ /* List of fields */
+ static hf_register_info hf[] = {
+#include "packet-h282-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_h282,
+#include "packet-h282-ettarr.c"
+ };
+
+ /* Register protocol */
+ proto_h282 = proto_register_protocol(PNAME, PSNAME, PFNAME);
+
+ /* Register fields and subtrees */
+ proto_register_field_array(proto_h282, hf, array_length(hf));
+ proto_register_subtree_array(ett, array_length(ett));
+
+ register_dissector(PFNAME, dissect_h282, proto_h282);
+ register_dissector(PFNAME".device_list", dissect_NonCollapsingCapabilities_PDU, proto_h282);
+
+}
+
+/*--- proto_reg_handoff_h282 -------------------------------------------*/
+void proto_reg_handoff_h282(void)
+{
+
+}
+