Additional checks for ONVIF event capabilities (#35599)

catch any exceptions when pulling event capabilities and assume it is not supported
pull/35828/head
Jason Hunter 2020-05-13 22:24:38 -04:00 committed by Franck Nijhof
parent 856c0e6a15
commit b83adad417
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
1 changed files with 11 additions and 5 deletions

View File

@ -209,17 +209,23 @@ class ONVIFDevice:
"""Obtain information about the available services on the device.""" """Obtain information about the available services on the device."""
media_service = self.device.create_media_service() media_service = self.device.create_media_service()
media_capabilities = await media_service.GetServiceCapabilities() media_capabilities = await media_service.GetServiceCapabilities()
event_service = self.device.create_events_service()
event_capabilities = await event_service.GetServiceCapabilities() pullpoint = False
try:
event_service = self.device.create_events_service()
event_capabilities = await event_service.GetServiceCapabilities()
pullpoint = event_capabilities.WSPullPointSupport
except (ONVIFError, Fault):
pass
ptz = False ptz = False
try: try:
self.device.get_definition("ptz") self.device.get_definition("ptz")
ptz = True ptz = True
except ONVIFError: except ONVIFError:
pass pass
return Capabilities(
media_capabilities.SnapshotUri, event_capabilities.WSPullPointSupport, ptz return Capabilities(media_capabilities.SnapshotUri, pullpoint, ptz)
)
async def async_get_profiles(self) -> List[Profile]: async def async_get_profiles(self) -> List[Profile]:
"""Obtain media profiles for this device.""" """Obtain media profiles for this device."""