ONVIF:...aStream(3pm)
π NAME π
okay bestie, say hi to ONVIF::PTZ::Types::MetadataStream β it's a Perl data type class, and it lives in the ONVIF:...aStream(3pm) manual, which is a User Contributed Perl Documentation page. she's giving β¨ generated-by-a-WSDL-compiler β¨ but honestly? she's serving.
πΈ DESCRIPTION πΈ
so. this is a Perl data type class for the XML Schema defined complexType called MetadataStream, and it comes from the namespace http://www.onvif.org/ver10/schema. that's the whole vibe. she's a type. she holds data. she's built for ONVIF PTZ stuff. periodt. π
π PROPERTIES π
you can reach these properties using the get_PROPERTY / set_PROPERTY methods (yes, that's literally how they're named, iykyk):
VideoAnalyticsPTZEventExtension
four of them. that's the roster. π
β¨ METHODS β¨
π¦ new π¦
constructor!! the main character of this whole page. you can hand her a data structure that looks a lil like this β and ngl, it's a lot, so hydrate first:
{ # ONVIF::PTZ::Types::MetadataStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
VideoAnalytics => { # ONVIF::PTZ::Types::VideoAnalyticsStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
Frame => { # ONVIF::PTZ::Types::Frame
PTZStatus => { # ONVIF::PTZ::Types::PTZStatus
Position => { # ONVIF::PTZ::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::PTZ::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Transformation => { # ONVIF::PTZ::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::PTZ::Types::TransformationExtension
},
},
Object => { # ONVIF::PTZ::Types::Object
Appearance => { # ONVIF::PTZ::Types::Appearance
Transformation => { # ONVIF::PTZ::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::PTZ::Types::TransformationExtension
},
},
Shape => { # ONVIF::PTZ::Types::ShapeDescriptor
BoundingBox => ,
CenterOfGravity => ,
Polygon => { # ONVIF::PTZ::Types::Polygon
Point => ,
},
Extension => { # ONVIF::PTZ::Types::ShapeDescriptorExtension
},
},
Color => { # ONVIF::PTZ::Types::ColorDescriptor
ColorCluster => {
Color => ,
Weight => $some_value, # float
Covariance => ,
},
Extension => { # ONVIF::PTZ::Types::ColorDescriptorExtension
},
},
Class => { # ONVIF::PTZ::Types::ClassDescriptor
ClassCandidate => {
Type => $some_value, # ClassType
Likelihood => $some_value, # float
},
Extension => { # ONVIF::PTZ::Types::ClassDescriptorExtension
OtherTypes => { # ONVIF::PTZ::Types::OtherType
Type => $some_value, # string
Likelihood => $some_value, # float
},
Extension => { # ONVIF::PTZ::Types::ClassDescriptorExtension2
},
},
},
Extension => { # ONVIF::PTZ::Types::AppearanceExtension
},
},
Behaviour => { # ONVIF::PTZ::Types::Behaviour
Removed => {
},
Idle => {
},
Extension => { # ONVIF::PTZ::Types::BehaviourExtension
},
},
Extension => { # ONVIF::PTZ::Types::ObjectExtension
},
},
ObjectTree => { # ONVIF::PTZ::Types::ObjectTree
Rename => { # ONVIF::PTZ::Types::Rename
from => ,
to => ,
},
Split => { # ONVIF::PTZ::Types::Split
from => ,
to => ,
},
Merge => { # ONVIF::PTZ::Types::Merge
from => ,
to => ,
},
Delete => ,
Extension => { # ONVIF::PTZ::Types::ObjectTreeExtension
},
},
Extension => { # ONVIF::PTZ::Types::FrameExtension
MotionInCells => { # ONVIF::PTZ::Types::MotionInCells
},
Extension => { # ONVIF::PTZ::Types::FrameExtension2
},
},
},
Extension => { # ONVIF::PTZ::Types::VideoAnalyticsStreamExtension
},
},
PTZ => { # ONVIF::PTZ::Types::PTZStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
PTZStatus => { # ONVIF::PTZ::Types::PTZStatus
Position => { # ONVIF::PTZ::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::PTZ::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Extension => { # ONVIF::PTZ::Types::PTZStreamExtension
},
},
Event => $some_value, # anyType
Extension => { # ONVIF::PTZ::Types::MetadataStreamExtension
AudioAnalyticsStream => { # ONVIF::PTZ::Types::AudioAnalyticsStream
AudioDescriptor => { # ONVIF::PTZ::Types::AudioDescriptor
},
Extension => { # ONVIF::PTZ::Types::AudioAnalyticsStreamExtension
},
},
Extension => { # ONVIF::PTZ::Types::MetadataStreamExtension2
},
},
},
π¨ okay listen up bestie, this is important: at the top level it says "One of the following elements. No occurrence checks yet, so be sure to pass just one..." β that goes forVideoAnalyticsandPTZtoo, and insideVideoAnalyticsit says the same about the elements in there. there are no occurrence checks yet, so nobody's gonna stop you from passing more than one. don't. pass just one. the comments are literally screaming it at you. π
also lowkey iconic that everything is chained inside VideoAnalytics β Frame, and PTZ gets its own whole PTZStatus situation again. copy-paste energy. we love a reusable schema. π
π AUTHOR π
Generated by SOAP::WSDL
that's it. that's the author. the machine did it. not me, not you, not a human. slay, I guess. π
and that's the whole page, bestie!! π«Ά this was perl v5.40.1, dated 2026-02-01, straight from the ONVIF:...aStream(3pm) page in the User Contributed Perl Documentation. go forth and pass exactly one element. no cap. πβ¨π
π¦ where this page comes from
- ubuntu resolute: zoneminder 1.36.37+dfsg1-1 Β· GPL-2.0-or-later
- ubuntu stonking: zoneminder 1.36.37+dfsg1-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms