ONVIF::...aStream(3)
π ONVIF::...aStream(3) β bestie edition π
Okay so this is the manual page for the ONVIF::...aStream(3) situation, and honestly? It's a whole vibe. Let me walk you through it, no cap.
β¨ NAME β¨
ONVIF::Analytics::Elements::MetadataStream β that's the whole name, periodt. It's a Perl data type class for the XML Schema defined element MetadataStream from the namespace http://www.onvif.org/ver10/schema. That namespace URL? Copy it exactly, bestie, every character. π«Ά
π₯ DESCRIPTION π₯
So basically this is a Perl data type class, and it exists for one job: representing the XML Schema defined element MetadataStream that lives in the namespace http://www.onvif.org/ver10/schema.
That's it. That's the whole gig. It's giving "small but mighty" and honestly we stan a focused class. π
πΈ METHODS πΈ
π¦ new
my $element = ONVIF::Analytics::Elements::MetadataStream->new($data);
Bestie. Listen. This is the constructor. It makes you a brand new shiny element object, and it will accept the following data structure β and oh my god, look at it. It's huge. It's iconic. It's a little unhinged. π
Heads up: nested inside there are notes saying "One of the following elements." and "No occurrence checks yet, so be sure to pass just one..." β that's real, that's the module talking, and it means exactly what it says. There are no occurrence checks. So please, for the love of everything, pass just one. π
{ # ONVIF::Analytics::Types::MetadataStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
VideoAnalytics => { # ONVIF::Analytics::Types::VideoAnalyticsStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
Frame => { # ONVIF::Analytics::Types::Frame
PTZStatus => { # ONVIF::Analytics::Types::PTZStatus
Position => { # ONVIF::Analytics::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Analytics::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Transformation => { # ONVIF::Analytics::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Analytics::Types::TransformationExtension
},
},
Object => { # ONVIF::Analytics::Types::Object
Appearance => { # ONVIF::Analytics::Types::Appearance
Transformation => { # ONVIF::Analytics::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Analytics::Types::TransformationExtension
},
},
Shape => { # ONVIF::Analytics::Types::ShapeDescriptor
BoundingBox => ,
CenterOfGravity => ,
Polygon => { # ONVIF::Analytics::Types::Polygon
Point => ,
},
Extension => { # ONVIF::Analytics::Types::ShapeDescriptorExtension
},
},
Color => { # ONVIF::Analytics::Types::ColorDescriptor
ColorCluster => {
Color => ,
Weight => $some_value, # float
Covariance => ,
},
Extension => { # ONVIF::Analytics::Types::ColorDescriptorExtension
},
},
Class => { # ONVIF::Analytics::Types::ClassDescriptor
ClassCandidate => {
Type => $some_value, # ClassType
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Analytics::Types::ClassDescriptorExtension
OtherTypes => { # ONVIF::Analytics::Types::OtherType
Type => $some_value, # string
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Analytics::Types::ClassDescriptorExtension2
},
},
},
Extension => { # ONVIF::Analytics::Types::AppearanceExtension
},
},
Behaviour => { # ONVIF::Analytics::Types::Behaviour
Removed => {
},
Idle => {
},
Extension => { # ONVIF::Analytics::Types::BehaviourExtension
},
},
Extension => { # ONVIF::Analytics::Types::ObjectExtension
},
},
ObjectTree => { # ONVIF::Analytics::Types::ObjectTree
Rename => { # ONVIF::Analytics::Types::Rename
from => ,
to => ,
},
Split => { # ONVIF::Analytics::Types::Split
from => ,
to => ,
},
Merge => { # ONVIF::Analytics::Types::Merge
from => ,
to => ,
},
Delete => ,
Extension => { # ONVIF::Analytics::Types::ObjectTreeExtension
},
},
Extension => { # ONVIF::Analytics::Types::FrameExtension
MotionInCells => { # ONVIF::Analytics::Types::MotionInCells
},
Extension => { # ONVIF::Analytics::Types::FrameExtension2
},
},
},
Extension => { # ONVIF::Analytics::Types::VideoAnalyticsStreamExtension
},
},
PTZ => { # ONVIF::Analytics::Types::PTZStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
PTZStatus => { # ONVIF::Analytics::Types::PTZStatus
Position => { # ONVIF::Analytics::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Analytics::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Extension => { # ONVIF::Analytics::Types::PTZStreamExtension
},
},
Event => $some_value, # anyType
Extension => { # ONVIF::Analytics::Types::MetadataStreamExtension
AudioAnalyticsStream => { # ONVIF::Analytics::Types::AudioAnalyticsStream
AudioDescriptor => { # ONVIF::Analytics::Types::AudioDescriptor
},
Extension => { # ONVIF::Analytics::Types::AudioAnalyticsStreamExtension
},
},
Extension => { # ONVIF::Analytics::Types::MetadataStreamExtension2
},
},
},
Like, the way MetadataStream can hold a VideoAnalytics (which is a VideoAnalyticsStream, which holds a Frame, which holds PTZStatus, Transformation, Object, ObjectTree, and an Extension...) β it's giving nesting dolls. It's giving "I contain multitudes." And then PTZ is its own PTZStream with its own PTZStatus and Extension, and Event is just $some_value typed as anyType, and Extension opens up into MetadataStreamExtension with an AudioAnalyticsStream in it. π
And under Object β Appearance β Class β Extension (ClassDescriptorExtension) you get OtherTypes (OtherType) with Type as a string and Likelihood as a float, plus an Extension of type ClassDescriptorExtension2. Ngl, the type names are so long they're basically a personality trait. π
Also lowkey obsessed with the Rename, Split, and Merge entries under ObjectTree β all three with lowercase from and to keys, plus a bare Delete. Copy the case exactly, bestie, because from β From and Perl will NOT be forgiving. π
π AUTHOR π
Generated by SOAP::WSDL. That's it. That's the author. A program did this. Honestly? Slay, king. π€β¨
Okay so that's the whole page, and you ate that. Go forth and pass exactly one element, bestie. π
<div align="center">β cute lil sign-off: this page is from perl v5.42.3, dated 1980-01-01, and the header said ONVIF::...aStream(3) β see you in the group chat ππ¦</div>
π¦ where this page comes from
- nixpkgs unstable: zoneminder 1.38.6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms