ONVIF:...aStream(3pm)

πŸ“¦
version 1.36.37 Β· 5 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– 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):

  • VideoAnalytics
  • PTZ
  • Event
  • Extension

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 for VideoAnalytics and PTZ too, and inside VideoAnalytics it 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