ONVIF::...oSource(3)

πŸ“¦ version 1.38.6, in nixpkgs unstable

✨ ONVIF::...oSource(3) ✨

okay bestie, so this is a page from the User Contributed Perl Documentation and it's about a Perl class called ONVIF::Analytics::Types::VideoSource πŸ’… yes it's a mouthful, we're gonna get through it together 🫢


🌸 NAME 🌸

ONVIF::Analytics::Types::VideoSource β€” that's the whole vibe, that's the name, that's her πŸ‘‘


πŸŽ€ DESCRIPTION πŸŽ€

So this is a Perl data type class for the XML Schema defined complexType VideoSource, from the namespace http://www.onvif.org/ver10/schema ✨

And what does that actually mean? It's the representation of a physical video input πŸŽ₯ like, literally a camera's video feed, in object form. Main character energy fr fr.

πŸ’– PROPERTIES πŸ’–

These are the properties you can poke at with get_PROPERTY / set_PROPERTY methods β€” those are the accessors, use them, they're iconic:

  • Framerate β€” the frames-per-second situation 🌈
  • Resolution β€” how big the picture is, bestie πŸ’
  • Imaging β€” all the image-quality settings, this one goes deep πŸŒ€
  • Extension β€” the extension slot, for the extra stuff ✨

πŸ¦‹ METHODS πŸ¦‹

⭐ new ⭐

The constructor πŸŽ€ This is where you build the thing. The following data structure may be passed to new():

{ # ONVIF::Analytics::Types::VideoSource
  Framerate =>  $some_value, # float
  Resolution =>  { # ONVIF::Analytics::Types::VideoResolution
    Width =>  $some_value, # int
    Height =>  $some_value, # int
  },
  Imaging =>  { # ONVIF::Analytics::Types::ImagingSettings
    BacklightCompensation =>  { # ONVIF::Analytics::Types::BacklightCompensation
      Mode => $some_value, # BacklightCompensationMode
      Level =>  $some_value, # float
    },
    Brightness =>  $some_value, # float
    ColorSaturation =>  $some_value, # float
    Contrast =>  $some_value, # float
    Exposure =>  { # ONVIF::Analytics::Types::Exposure
      Mode => $some_value, # ExposureMode
      Priority => $some_value, # ExposurePriority
      Window => ,
      MinExposureTime =>  $some_value, # float
      MaxExposureTime =>  $some_value, # float
      MinGain =>  $some_value, # float
      MaxGain =>  $some_value, # float
      MinIris =>  $some_value, # float
      MaxIris =>  $some_value, # float
      ExposureTime =>  $some_value, # float
      Gain =>  $some_value, # float
      Iris =>  $some_value, # float
    },
    Focus =>  { # ONVIF::Analytics::Types::FocusConfiguration
      AutoFocusMode => $some_value, # AutoFocusMode
      DefaultSpeed =>  $some_value, # float
      NearLimit =>  $some_value, # float
      FarLimit =>  $some_value, # float
    },
    IrCutFilter => $some_value, # IrCutFilterMode
    Sharpness =>  $some_value, # float
    WideDynamicRange =>  { # ONVIF::Analytics::Types::WideDynamicRange
      Mode => $some_value, # WideDynamicMode
      Level =>  $some_value, # float
    },
    WhiteBalance =>  { # ONVIF::Analytics::Types::WhiteBalance
      Mode => $some_value, # WhiteBalanceMode
      CrGain =>  $some_value, # float
      CbGain =>  $some_value, # float
    },
    Extension =>  { # ONVIF::Analytics::Types::ImagingSettingsExtension
    },
  },
  Extension =>  { # ONVIF::Analytics::Types::VideoSourceExtension
    Imaging =>  { # ONVIF::Analytics::Types::ImagingSettings20
      BacklightCompensation =>  { # ONVIF::Analytics::Types::BacklightCompensation20
        Mode => $some_value, # BacklightCompensationMode
        Level =>  $some_value, # float
      },
      Brightness =>  $some_value, # float
      ColorSaturation =>  $some_value, # float
      Contrast =>  $some_value, # float
      Exposure =>  { # ONVIF::Analytics::Types::Exposure20
        Mode => $some_value, # ExposureMode
        Priority => $some_value, # ExposurePriority
        Window => ,
        MinExposureTime =>  $some_value, # float
        MaxExposureTime =>  $some_value, # float
        MinGain =>  $some_value, # float
        MaxGain =>  $some_value, # float
        MinIris =>  $some_value, # float
        MaxIris =>  $some_value, # float
        ExposureTime =>  $some_value, # float
        Gain =>  $some_value, # float
        Iris =>  $some_value, # float
      },
      Focus =>  { # ONVIF::Analytics::Types::FocusConfiguration20
        AutoFocusMode => $some_value, # AutoFocusMode
        DefaultSpeed =>  $some_value, # float
        NearLimit =>  $some_value, # float
        FarLimit =>  $some_value, # float
        Extension =>  { # ONVIF::Analytics::Types::FocusConfiguration20Extension
        },
      },
      IrCutFilter => $some_value, # IrCutFilterMode
      Sharpness =>  $some_value, # float
      WideDynamicRange =>  { # ONVIF::Analytics::Types::WideDynamicRange20
        Mode => $some_value, # WideDynamicMode
        Level =>  $some_value, # float
      },
      WhiteBalance =>  { # ONVIF::Analytics::Types::WhiteBalance20
        Mode => $some_value, # WhiteBalanceMode
        CrGain =>  $some_value, # float
        CbGain =>  $some_value, # float
        Extension =>  { # ONVIF::Analytics::Types::WhiteBalance20Extension
        },
      },
      Extension =>  { # ONVIF::Analytics::Types::ImagingSettingsExtension20
        ImageStabilization =>  { # ONVIF::Analytics::Types::ImageStabilization
          Mode => $some_value, # ImageStabilizationMode
          Level =>  $some_value, # float
          Extension =>  { # ONVIF::Analytics::Types::ImageStabilizationExtension
          },
        },
        Extension =>  { # ONVIF::Analytics::Types::ImagingSettingsExtension202
          IrCutFilterAutoAdjustment =>  { # ONVIF::Analytics::Types::IrCutFilterAutoAdjustment
            BoundaryType =>  $some_value, # string
            BoundaryOffset =>  $some_value, # float
            ResponseTime =>  $some_value, # duration
            Extension =>  { # ONVIF::Analytics::Types::IrCutFilterAutoAdjustmentExtension
            },
          },
          Extension =>  { # ONVIF::Analytics::Types::ImagingSettingsExtension203
          },
        },
      },
    },
    Extension =>  { # ONVIF::Analytics::Types::VideoSourceExtension2
    },
  },
}

so yeah 😭 that's the whole nested situation. lowkey it's giving russian dolls β€” every type has an Extension inside it and that extension has its own Extension, and honestly it just keeps going πŸ’€ ngl, respect the hustle.

a couple of things worth clocking, bestie πŸ‘€

  • The Imaging under Extension is the ImagingSettings20 flavor β€” a whole second-gen set (BacklightCompensation20, Exposure20, FocusConfiguration20, WideDynamicRange20, WhiteBalance20) with even more extensions hanging off of it πŸŒ€
  • ImageStabilization and IrCutFilterAutoAdjustment only show up inside ImagingSettingsExtension20 and ImagingSettingsExtension202 respectively β€” that's their neighborhood 🏘️
  • Window => , is literally just sitting there with no value in the sketch, so don't come for me, I'm copying the source exactly fr fr πŸ™ˆ
  • ResponseTime is a duration, BoundaryType is a string, Width/Height are int β€” the rest of the numbers are all float ✨

🌈 AUTHOR 🌈

Generated by SOAP::WSDL πŸŽ€ that's it, that's the author, the machine did it, slay I guess πŸ’…


and that's the whole page, bestie! 🫢 written by the lovely folks behind perl v5.42.3, dated 1980-01-01 β€” yes, that date is iconic and yes, it's staying exactly like that πŸ’– mwah, go build your video source, you've got this βœ¨πŸ‘‘

πŸ“¦ where this page comes from