ONVIF::...oSource(3)
β¨ 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
ImagingunderExtensionis theImagingSettings20flavor β a whole second-gen set (BacklightCompensation20,Exposure20,FocusConfiguration20,WideDynamicRange20,WhiteBalance20) with even more extensions hanging off of it π ImageStabilizationandIrCutFilterAutoAdjustmentonly show up insideImagingSettingsExtension20andImagingSettingsExtension202respectively β 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 πResponseTimeis aduration,BoundaryTypeis astring,Width/Heightareintβ the rest of the numbers are allfloatβ¨
π 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
- 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