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."""
media_service = self.device.create_media_service()
media_capabilities = await media_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
try:
self.device.get_definition("ptz")
ptz = True
except ONVIFError:
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]:
"""Obtain media profiles for this device."""