ONVIF:...Stream(3pm)
β¨ NAME β¨
ONVIF::Media::Elements::MetadataStream β it's a Perl data type class, bestie, living its best life over in the User Contributed Perl Documentation section of the manual (section 3pm, if you're keeping track π).
πΈ DESCRIPTION πΈ
Okay so real talk: this is a Perl data type class for the XML Schema element MetadataStream, and it comes straight outta the namespace http://www.onvif.org/ver10/schema. That's it. That's the whole vibe. It's giving "I exist so your XML can have a home" and honestly? Slay. π
π¦ METHODS π¦
π new π
my $element = ONVIF::Media::Elements::MetadataStream->new($data);
Constructor, periodt. β¨ This is the lil glow-up moment where you hand it $data and it becomes an element. And what does $data even look like?? Buckle up babes, because the data structure you can pass to new() is this absolute icon right here π
Heads up queen: everywhere it says "One of the following elements. No occurrence checks yet, so be sure to pass just one..." β it MEANS that. No occurrence checks yet, so be sure to pass just one. The code is literally not gonna yell at you if you pass two, so the discipline is on you fr fr. π
{ # ONVIF::Media::Types::MetadataStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
VideoAnalytics => { # ONVIF::Media::Types::VideoAnalyticsStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
Frame => { # ONVIF::Media::Types::Frame
PTZStatus => { # ONVIF::Media::Types::PTZStatus
Position => { # ONVIF::Media::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Media::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Transformation => { # ONVIF::Media::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Media::Types::TransformationExtension
},
},
Object => { # ONVIF::Media::Types::Object
Appearance => { # ONVIF::Media::Types::Appearance
Transformation => { # ONVIF::Media::Types::Transformation
Translate => ,
Scale => ,
Extension => { # ONVIF::Media::Types::TransformationExtension
},
},
Shape => { # ONVIF::Media::Types::ShapeDescriptor
BoundingBox => ,
CenterOfGravity => ,
Polygon => { # ONVIF::Media::Types::Polygon
Point => ,
},
Extension => { # ONVIF::Media::Types::ShapeDescriptorExtension
},
},
Color => { # ONVIF::Media::Types::ColorDescriptor
ColorCluster => {
Color => ,
Weight => $some_value, # float
Covariance => ,
},
Extension => { # ONVIF::Media::Types::ColorDescriptorExtension
},
},
Class => { # ONVIF::Media::Types::ClassDescriptor
ClassCandidate => {
Type => $some_value, # ClassType
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Media::Types::ClassDescriptorExtension
OtherTypes => { # ONVIF::Media::Types::OtherType
Type => $some_value, # string
Likelihood => $some_value, # float
},
Extension => { # ONVIF::Media::Types::ClassDescriptorExtension2
},
},
},
Extension => { # ONVIF::Media::Types::AppearanceExtension
},
},
Behaviour => { # ONVIF::Media::Types::Behaviour
Removed => {
},
Idle => {
},
Extension => { # ONVIF::Media::Types::BehaviourExtension
},
},
Extension => { # ONVIF::Media::Types::ObjectExtension
},
},
ObjectTree => { # ONVIF::Media::Types::ObjectTree
Rename => { # ONVIF::Media::Types::Rename
from => ,
to => ,
},
Split => { # ONVIF::Media::Types::Split
from => ,
to => ,
},
Merge => { # ONVIF::Media::Types::Merge
from => ,
to => ,
},
Delete => ,
Extension => { # ONVIF::Media::Types::ObjectTreeExtension
},
},
Extension => { # ONVIF::Media::Types::FrameExtension
MotionInCells => { # ONVIF::Media::Types::MotionInCells
},
Extension => { # ONVIF::Media::Types::FrameExtension2
},
},
},
Extension => { # ONVIF::Media::Types::VideoAnalyticsStreamExtension
},
},
PTZ => { # ONVIF::Media::Types::PTZStream
# One of the following elements.
# No occurrence checks yet, so be sure to pass just one...
PTZStatus => { # ONVIF::Media::Types::PTZStatus
Position => { # ONVIF::Media::Types::PTZVector
PanTilt => ,
Zoom => ,
},
MoveStatus => { # ONVIF::Media::Types::PTZMoveStatus
PanTilt => $some_value, # MoveStatus
Zoom => $some_value, # MoveStatus
},
Error => $some_value, # string
UtcTime => $some_value, # dateTime
},
Extension => { # ONVIF::Media::Types::PTZStreamExtension
},
},
Event => $some_value, # anyType
Extension => { # ONVIF::Media::Types::MetadataStreamExtension
AudioAnalyticsStream => { # ONVIF::Media::Types::AudioAnalyticsStream
AudioDescriptor => { # ONVIF::Media::Types::AudioDescriptor
},
Extension => { # ONVIF::Media::Types::AudioAnalyticsStreamExtension
},
},
Extension => { # ONVIF::Media::Types::MetadataStreamExtension2
},
},
},
Lowkey that's a whole family tree π§ β nested hashrefs all the way down, every one of them tagged with its own type in the comments. The $some_value spots are where you drop your actual scalar (and the comment tells you what flavour: # string, # dateTime, # float, # ClassType, # MoveStatus, # anyType). The empty ones β like Extension, Removed, Idle, AudioDescriptor β are just vibes containers waiting for you. π«Ά
π AUTHOR π
Generated by SOAP::WSDL. Like, it wrote itself, no cap. π
okay that's the whole page bestie, you ate π β this little masterpiece is perl v5.40.1, dated 2026-02-01, filed under ONVIF:...Stream(3pm) in the User Contributed Perl Documentation section. mwah π go forth and construct your elements πβ
π¦ 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