ONVIF::...diaPort(3)

πŸ“¦ version 1.38.6, in nixpkgs unstable

πŸ’– ONVIF::Media::Interfaces::Media::MediaPort πŸ’–

okay so bestie, this is the manual page for ONVIF::Media::Interfaces::Media::MediaPort πŸ’… the header shows ONVIF::...diaPort(3) β€” it's giving truncated icon energy, but the full name is the one up there. This is the SOAP interface for the Media web service, and we're gonna walk through it together, no cap ✨


🌸 NAME 🌸

ONVIF::Media::Interfaces::Media::MediaPort β€” SOAP Interface for the Media Web Service πŸŽ€

πŸ¦‹ SYNOPSIS πŸ¦‹

        use ONVIF::Media::Interfaces::Media::MediaPort;
        my $interface = ONVIF::Media::Interfaces::Media::MediaPort->new();

        my $response;
        $response = $interface->GetServiceCapabilities();
        $response = $interface->GetVideoSources();
        $response = $interface->GetAudioSources();
        $response = $interface->GetAudioOutputs();
        $response = $interface->CreateProfile();
        $response = $interface->GetProfile();
        $response = $interface->GetProfiles();
        $response = $interface->AddVideoEncoderConfiguration();
        $response = $interface->AddVideoSourceConfiguration();
        $response = $interface->AddAudioEncoderConfiguration();
        $response = $interface->AddAudioSourceConfiguration();
        $response = $interface->AddPTZConfiguration();
        $response = $interface->AddVideoAnalyticsConfiguration();
        $response = $interface->AddMetadataConfiguration();
        $response = $interface->AddAudioOutputConfiguration();
        $response = $interface->AddAudioDecoderConfiguration();
        $response = $interface->RemoveVideoEncoderConfiguration();
        $response = $interface->RemoveVideoSourceConfiguration();
        $response = $interface->RemoveAudioEncoderConfiguration();
        $response = $interface->RemoveAudioSourceConfiguration();
        $response = $interface->RemovePTZConfiguration();
        $response = $interface->RemoveVideoAnalyticsConfiguration();
        $response = $interface->RemoveMetadataConfiguration();
        $response = $interface->RemoveAudioOutputConfiguration();
        $response = $interface->RemoveAudioDecoderConfiguration();
        $response = $interface->DeleteProfile();
        $response = $interface->GetVideoSourceConfigurations();
        $response = $interface->GetVideoEncoderConfigurations();
        $response = $interface->GetAudioSourceConfigurations();
        $response = $interface->GetAudioEncoderConfigurations();
        $response = $interface->GetVideoAnalyticsConfigurations();
        $response = $interface->GetMetadataConfigurations();
        $response = $interface->GetAudioOutputConfigurations();
        $response = $interface->GetAudioDecoderConfigurations();
        $response = $interface->GetVideoSourceConfiguration();
        $response = $interface->GetVideoEncoderConfiguration();
        $response = $interface->GetAudioSourceConfiguration();
        $response = $interface->GetAudioEncoderConfiguration();
        $response = $interface->GetVideoAnalyticsConfiguration();
        $response = $interface->GetMetadataConfiguration();
        $response = $interface->GetAudioOutputConfiguration();
        $response = $interface->GetAudioDecoderConfiguration();
        $response = $interface->GetCompatibleVideoEncoderConfigurations();
        $response = $interface->GetCompatibleVideoSourceConfigurations();
        $response = $interface->GetCompatibleAudioEncoderConfigurations();
        $response = $interface->GetCompatibleAudioSourceConfigurations();
        $response = $interface->GetCompatibleVideoAnalyticsConfigurations();
        $response = $interface->GetCompatibleMetadataConfigurations();
        $response = $interface->GetCompatibleAudioOutputConfigurations();
        $response = $interface->GetCompatibleAudioDecoderConfigurations();
        $response = $interface->SetVideoSourceConfiguration();
        $response = $interface->SetVideoEncoderConfiguration();
        $response = $interface->SetAudioSourceConfiguration();
        $response = $interface->SetAudioEncoderConfiguration();
        $response = $interface->SetVideoAnalyticsConfiguration();
        $response = $interface->SetMetadataConfiguration();
        $response = $interface->SetAudioOutputConfiguration();
        $response = $interface->SetAudioDecoderConfiguration();
        $response = $interface->GetVideoSourceConfigurationOptions();
        $response = $interface->GetVideoEncoderConfigurationOptions();
        $response = $interface->GetAudioSourceConfigurationOptions();
        $response = $interface->GetAudioEncoderConfigurationOptions();
        $response = $interface->GetMetadataConfigurationOptions();
        $response = $interface->GetAudioOutputConfigurationOptions();
        $response = $interface->GetAudioDecoderConfigurationOptions();
        $response = $interface->GetGuaranteedNumberOfVideoEncoderInstances();
        $response = $interface->GetStreamUri();
        $response = $interface->StartMulticastStreaming();
        $response = $interface->StopMulticastStreaming();
        $response = $interface->SetSynchronizationPoint();
        $response = $interface->GetSnapshotUri();
        $response = $interface->GetVideoSourceModes();
        $response = $interface->SetVideoSourceMode();
        $response = $interface->GetOSDs();
        $response = $interface->GetOSD();
        $response = $interface->GetOSDOptions();
        $response = $interface->SetOSD();
        $response = $interface->CreateOSD();
        $response = $interface->DeleteOSD();

🌈 DESCRIPTION 🌈

SOAP Interface for the Media web service located at http://www.examples.com/Media/ πŸ’–

✨ SERVICE Media ✨

πŸŽ€ Port MediaPort πŸŽ€

πŸ‘‘ METHODS πŸ‘‘

🧚 General methods

new

Constructor, bestie 🫢

All arguments are forwarded to SOAP::WSDL::Client.

πŸ¦‹ SOAP Service methods

Method synopsis is displayed with hash refs as parameters β€” that's the vibe here.

The commented class names in the method's parameters denote that objects of the corresponding class can be passed instead of the marked hash ref. cute, right? πŸ’…

You may pass any combination of objects, hash and list refs to these methods, as long as you meet the structure.

List items (i.e. multiple occurrences) are not displayed in the synopsis. You may generally pass a list ref of hash refs (or objects) instead of a hash ref β€” this may result in invalid XML if used improperly, though. so like, don't do that wrong, okay? 😭

Note that SOAP::WSDL always expects list references at maximum depth position.

XML attributes are not displayed in this synopsis and cannot be set using hash refs. See the respective class' documentation for additional information.


GetServiceCapabilities

Returns the capabilities of the media service. The result is returned in a typed answer.

Returns a ONVIF::Media::Elements::GetServiceCapabilitiesResponse object.

        $response = $interface->GetServiceCapabilities( {
         },,
        );

GetVideoSources

This command lists all available physical video inputs of the device.

Returns a ONVIF::Media::Elements::GetVideoSourcesResponse object.

        $response = $interface->GetVideoSources( {
         },,
        );

GetAudioSources

This command lists all available physical audio inputs of the device.

Returns a ONVIF::Media::Elements::GetAudioSourcesResponse object.

        $response = $interface->GetAudioSources( {
         },,
        );

GetAudioOutputs

This command lists all available physical audio outputs of the device.

Returns a ONVIF::Media::Elements::GetAudioOutputsResponse object.

        $response = $interface->GetAudioOutputs( {
         },,
        );

CreateProfile

This operation creates a new empty media profile. The media profile shall be created in the device and shall be persistent (remain after reboot). A created profile shall be deletable and a device shall set the "fixed" attribute to false in the returned Profile.

Returns a ONVIF::Media::Elements::CreateProfileResponse object.

        $response = $interface->CreateProfile( {
           Name => $some_value, # Name
           Token => $some_value, # ReferenceToken
         },,
        );

GetProfile

If the profile token is already known, a profile can be fetched through the GetProfile command.

Returns a ONVIF::Media::Elements::GetProfileResponse object.

        $response = $interface->GetProfile( {
           ProfileToken => $some_value, # ReferenceToken
         },,
        );

GetProfiles

Any endpoint can ask for the existing media profiles of a device using the GetProfiles command. Pre-configured or dynamically configured profiles can be retrieved using this command. This command lists all configured profiles in a device. The client does not need to know the media profile in order to use the command.

Returns a ONVIF::Media::Elements::GetProfilesResponse object.

        $response = $interface->GetProfiles( {
         },,
        );

AddVideoEncoderConfiguration

This operation adds a VideoEncoderConfiguration to an existing media profile. If a configuration exists in the media profile, it will be replaced. The change shall be persistent. A device shall support adding a compatible VideoEncoderConfiguration to a Profile containing a VideoSourceConfiguration and shall support streaming video data of such a profile.

Returns a ONVIF::Media::Elements::AddVideoEncoderConfigurationResponse object.

        $response = $interface->AddVideoEncoderConfiguration( {
           ProfileToken => $some_value, # ReferenceToken
           ConfigurationToken => $some_value, # ReferenceToken
         },,
        );

AddVideoSourceConfiguration

This operation adds a VideoSourceConfiguration to an existing media profile. If such a configuration exists in the media profile, it will be replaced. The change shall be persistent.

Returns a ONVIF::Media::Elements::AddVideoSourceConfigurationResponse object.

        $response = $interface->AddVideoSourceConfiguration( {
           ProfileToken => $some_value, # ReferenceToken
           ConfigurationToken => $some_value, # ReferenceToken
         },,
        );

AddAudioEncoderConfiguration

This operation adds an AudioEncoderConfiguration to an existing media profile. If a configuration exists in the media profile, it will be replaced. The change shall be persistent. A device shall support adding a compatible AudioEncoderConfiguration to a profile containing an AudioSourceConfiguration and shall support streaming audio data of such a profile.

Returns a ONVIF::Media::Elements::AddAudioEncoderConfigurationResponse object.

        $response = $interface->AddAudioEncoderConfiguration( {
           ProfileToken => $some_value, # ReferenceToken
           ConfigurationToken => $some_value, # ReferenceToken
         },,
        );

AddAudioSourceConfiguration

This operation adds an AudioSourceConfiguration to an existing media profile. If a configuration exists in the media profile, it will be replaced. The change shall be persistent.

Returns a ONVIF::Media::Elements::AddAudioSourceConfigurationResponse object.

        $response = $interface->AddAudioSourceConfiguration( {
           ProfileToken => $some_value, # ReferenceToken
           ConfigurationToken => $some_value, # ReferenceToken
         },,
        );

AddPTZConfiguration

This operation adds a PTZConfiguration to an existing media profile. If a configuration exists in the media profile, it will be replaced. The change shall be persistent. Adding a PTZConfiguration to a media profile means that streams using that media profile can contain PTZ status (in the metadata), and that the media profile can be used for controlling PTZ movement.

Returns a ONVIF::Media::Elements::AddPTZConfigurationResponse object.

    $response = $interface->AddPTZConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
       ConfigurationToken => $some_value, # ReferenceToken
     },,
    );

πŸ’… AddVideoAnalyticsConfiguration

Okay so this one drops a VideoAnalytics configuration onto a media profile you already have. And bestie, heads up: if there's already one chilling in that profile, it gets replaced. Like, gone. And the change shall be persistent β€” that's not a maybe, that's forever.

Adding a VideoAnalyticsConfiguration to a media profile means streams using that profile can carry video analytics data (inside the metadata) as defined by the configuration reference you handed over. Sounds iconic, right? But here's the tea 😭 β€” a profile that has only a video analytics configuration and no video source configuration is incomplete. So a client should first add a video source configuration to the profile before adding a video analytics configuration. And yes, the device can deny adding a video analytics configuration before a video source configuration exists. Rude but fair.

Returns a ONVIF::Media::Elements::AddVideoAnalyticsConfigurationResponse object.

    $response = $interface->AddVideoAnalyticsConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
       ConfigurationToken => $some_value, # ReferenceToken
     },,
    );

🌸 AddMetadataConfiguration

This operation adds a Metadata configuration to an existing media profile. Same rule as always: if a configuration already exists in the media profile, it will be replaced, and the change shall be persistent. ✨

Adding a MetadataConfiguration to a Profile means streams using that profile contain metadata. And what's in that metadata? Events, PTZ status, and/or video analytics data. It's giving variety pack πŸŽ€.

Returns a ONVIF::Media::Elements::AddMetadataConfigurationResponse object.

    $response = $interface->AddMetadataConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
       ConfigurationToken => $some_value, # ReferenceToken
     },,
    );

πŸŽ€ AddAudioOutputConfiguration

Adds an AudioOutputConfiguration to an existing media profile. Configuration already there? Replaced. The change shall be persistent. That's the whole vibe πŸ’….

Returns a ONVIF::Media::Elements::AddAudioOutputConfigurationResponse object.

    $response = $interface->AddAudioOutputConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
       ConfigurationToken => $some_value, # ReferenceToken
     },,
    );

πŸ¦‹ AddAudioDecoderConfiguration

Adds an AudioDecoderConfiguration to an existing media profile. If a configuration exists in the media profile, it shall be replaced, and the change shall be persistent. Same energy, different config πŸ”₯.

Returns a ONVIF::Media::Elements::AddAudioDecoderConfigurationResponse object.

    $response = $interface->AddAudioDecoderConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
       ConfigurationToken => $some_value, # ReferenceToken
     },,
    );

πŸ’€ RemoveVideoEncoderConfiguration

Removes a VideoEncoderConfiguration from an existing media profile. And here's the chill part β€” if the media profile doesn't contain a VideoEncoderConfiguration, the operation just... has no effect. No drama, no error, it just shrugs πŸ™ˆ. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveVideoEncoderConfigurationResponse object.

    $response = $interface->RemoveVideoEncoderConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ’œ RemoveVideoSourceConfiguration

Removes a VideoSourceConfiguration from an existing media profile. If the media profile doesn't contain a VideoSourceConfiguration, the operation has no effect. The removal shall be persistent.

Now this is the important bit, bestie 🫢: video source configurations should only be removed after removing a VideoEncoderConfiguration from the media profile. Order matters, iykyk.

Returns a ONVIF::Media::Elements::RemoveVideoSourceConfigurationResponse object.

    $response = $interface->RemoveVideoSourceConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ“ RemoveAudioEncoderConfiguration

Removes an AudioEncoderConfiguration from an existing media profile. If the media profile doesn't contain an AudioEncoderConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveAudioEncoderConfigurationResponse object.

    $response = $interface->RemoveAudioEncoderConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

🌈 RemoveAudioSourceConfiguration

Removes an AudioSourceConfiguration from an existing media profile. If the media profile doesn't contain an AudioSourceConfiguration, the operation has no effect. The removal shall be persistent.

And the same sequencing rule as the video side 🧚: audio source configurations should only be removed after removing an AudioEncoderConfiguration from the media profile. Do it out of order and you're on your own, fr fr.

Returns a ONVIF::Media::Elements::RemoveAudioSourceConfigurationResponse object.

    $response = $interface->RemoveAudioSourceConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

✨ RemovePTZConfiguration

Removes a PTZConfiguration from an existing media profile. If the media profile doesn't contain a PTZConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemovePTZConfigurationResponse object.

    $response = $interface->RemovePTZConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ”₯ RemoveVideoAnalyticsConfiguration

Removes a VideoAnalyticsConfiguration from an existing media profile. If the media profile doesn't contain a VideoAnalyticsConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveVideoAnalyticsConfigurationResponse object.

    $response = $interface->RemoveVideoAnalyticsConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ‘‘ RemoveMetadataConfiguration

Removes a MetadataConfiguration from an existing media profile. If the media profile doesn't contain a MetadataConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveMetadataConfigurationResponse object.

    $response = $interface->RemoveMetadataConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

🧚 RemoveAudioOutputConfiguration

Removes an AudioOutputConfiguration from an existing media profile. If the media profile doesn't contain an AudioOutputConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveAudioOutputConfigurationResponse object.

    $response = $interface->RemoveAudioOutputConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ’– RemoveAudioDecoderConfiguration

Removes an AudioDecoderConfiguration from an existing media profile. If the media profile doesn't contain an AudioDecoderConfiguration, the operation has no effect. The removal shall be persistent.

Returns a ONVIF::Media::Elements::RemoveAudioDecoderConfigurationResponse object.

    $response = $interface->RemoveAudioDecoderConfiguration( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

πŸ™ˆ DeleteProfile

This one straight-up deletes a profile. And the change shall always be persistent β€” no takesies backsies, periodt πŸ’….

⚠️ Big caveat incoming: deletion of a profile is only possible for non-fixed profiles. Fixed ones are not it. Not happening. 😭

Returns a ONVIF::Media::Elements::DeleteProfileResponse object.

    $response = $interface->DeleteProfile( {
       ProfileToken => $some_value, # ReferenceToken
     },,
    );

🌟 GetVideoSourceConfigurations

Lists all existing video source configurations for a device. And the best part β€” the client doesn't need to know anything about the video source configurations to use the command. Just vibe and call it πŸ¦‹.

Returns a ONVIF::Media::Elements::GetVideoSourceConfigurationsResponse object.

    $response = $interface->GetVideoSourceConfigurations( {
     },,
    );

⭐ GetVideoEncoderConfigurations

Lists all existing video encoder configurations of a device. Like, all the configured video encoder configurations in the device. And again, the client need not know anything apriori about the video encoder configurations in order to use the command πŸ‘‘

Returns a ONVIF::Media::Elements::GetVideoEncoderConfigurationsResponse object.

    $response = $interface->GetVideoEncoderConfigurations( {
     },,
    );

πŸŽ€ GetAudioSourceConfigurations

Lists all existing audio source configurations of a device. This command lists all audio source configurations in a device, and the client need not know anything apriori about the audio source configurations in order to use the command πŸ’œ.

Returns a ONVIF::Media::Elements::GetAudioSourceConfigurationsResponse object.

    $response = $interface->GetAudioSourceConfigurations( {
     },,
    );

🌸 GetAudioEncoderConfigurations

Lists all existing device audio encoder configurations. Client need not know anything apriori about the audio encoder configurations in order to use the command. Slay, honestly ✨.

Returns a ONVIF::Media::Elements::GetAudioEncoderConfigurationsResponse object.

    $response = $interface->GetAudioEncoderConfigurations( {
     },,
    );

πŸ”₯ GetVideoAnalyticsConfigurations

Lists all video analytics configurations of a device. This command lists all the configured video analytics in a device, and the client need not know anything apriori about the video analytics in order to use the command.

Returns a ONVIF::Media::Elements::GetVideoAnalyticsConfigurationsResponse object.

    $response = $interface->GetVideoAnalyticsConfigurations( {
     },,
    );

πŸ¦‹ GetMetadataConfigurations

Lists all existing metadata configurations. The client need not know anything apriori about the metadata in order to use the command. Iconic low-effort energy 🫢.

Returns a ONVIF::Media::Elements::GetMetadataConfigurationsResponse object.

    $response = $interface->GetMetadataConfigurations( {
     },,
    );

πŸ“ GetAudioOutputConfigurations

Lists all existing AudioOutputConfigurations of a device. The NVC need not know anything apriori about the audio configurations to use this command. (Yes, that's NVC, not NVT β€” copying the facts exactly, bestie πŸ’….)

Returns a ONVIF::Media::Elements::GetAudioOutputConfigurationsResponse object.

    $response = $interface->GetAudioOutputConfigurations( {
     },,
    );

🌈 GetAudioDecoderConfigurations

Lists all existing AudioDecoderConfigurations of a device. The NVC need not know anything apriori about the audio decoder configurations in order to use this command.

Returns a ONVIF::Media::Elements::GetAudioDecoderConfigurationsResponse object.

    $response = $interface->GetAudioDecoderConfigurations( {
     },,
    );

🌸 GetVideoSourceConfiguration

Okay so if you already have the video source configuration token, you can totally pull the video source configuration with the GetVideoSourceConfiguration command. Token in hand? Configuration out. Slay. ✨

Returns a ONVIF::Media::Elements::GetVideoSourceConfigurationResponse object.

 $response = $interface->GetVideoSourceConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

πŸŽ€ GetVideoEncoderConfiguration

Same energy, encoder edition: if the video encoder configuration token is already known, the encoder configuration can be fetched through the GetVideoEncoderConfiguration command.

Returns a ONVIF::Media::Elements::GetVideoEncoderConfigurationResponse object.

 $response = $interface->GetVideoEncoderConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

πŸ¦‹ GetAudioSourceConfiguration

The GetAudioSourceConfiguration command fetches the audio source configurations if the audio source configuration token is already known. An

bestie the source text literally just ends that sentence on the word "An" 😭 not me, not my edit, that's just what's in the doc fr fr

Returns a ONVIF::Media::Elements::GetAudioSourceConfigurationResponse object.

 $response = $interface->GetAudioSourceConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

πŸ’œ GetAudioEncoderConfiguration

The GetAudioEncoderConfiguration command fetches the encoder configuration if the audio encoder configuration token is known. iykyk, token = configuration πŸ’…

Returns a ONVIF::Media::Elements::GetAudioEncoderConfigurationResponse object.

 $response = $interface->GetAudioEncoderConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

⭐ GetVideoAnalyticsConfiguration

The GetVideoAnalyticsConfiguration command fetches the video analytics configuration if the video analytics token is known.

Returns a ONVIF::Media::Elements::GetVideoAnalyticsConfigurationResponse object.

 $response = $interface->GetVideoAnalyticsConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

πŸ“ GetMetadataConfiguration

The GetMetadataConfiguration command fetches the metadata configuration if the metadata token is known.

Returns a ONVIF::Media::Elements::GetMetadataConfigurationResponse object.

 $response = $interface->GetMetadataConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

🌈 GetAudioOutputConfiguration

If the audio output configuration token is already known, the output configuration can be fetched through the GetAudioOutputConfiguration command. We love a token-based fetch, no cap.

Returns a ONVIF::Media::Elements::GetAudioOutputConfigurationResponse object.

 $response = $interface->GetAudioOutputConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

🧚 GetAudioDecoderConfiguration

If the audio decoder configuration token is already known, the decoder configuration can be fetched through the GetAudioDecoderConfiguration command.

Returns a ONVIF::Media::Elements::GetAudioDecoderConfigurationResponse object.

 $response = $interface->GetAudioDecoderConfiguration( {
   ConfigurationToken => $some_value, # ReferenceToken
 },,
);

πŸ”₯ The "Compatible" Era (aka the compatibility-checking girlies)

πŸ‘‘ GetCompatibleVideoEncoderConfigurations

This operation lists all the video encoder configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddVideoEncoderConfiguration command on the media profile. The result will vary depending on the capabilities, configurations and settings in the device β€” so like, your mileage is genuinely your device's vibe πŸ’«

Returns a ONVIF::Media::Elements::GetCompatibleVideoEncoderConfigurationsResponse object.

 $response = $interface->GetCompatibleVideoEncoderConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

🌸 GetCompatibleVideoSourceConfigurations

This operation requests all the video source configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddVideoSourceConfiguration command on the media profile. The result will vary depending on the capabilities, configurations and settings in the device.

Returns a ONVIF::Media::Elements::GetCompatibleVideoSourceConfigurationsResponse object.

 $response = $interface->GetCompatibleVideoSourceConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸ’… GetCompatibleAudioEncoderConfigurations

This operation requests all audio encoder configurations of a device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddAudioSourceConfiguration command on the media profile. The result varies depending on the capabilities, configurations and settings in the device.

yes it says AddAudioSourceConfiguration in the encoder section, and yes the next one flips them around β€” I'm not touching it, take it up with the upstream doc πŸ™ˆ

Returns a ONVIF::Media::Elements::GetCompatibleAudioEncoderConfigurationsResponse object.

 $response = $interface->GetCompatibleAudioEncoderConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸŽ€ GetCompatibleAudioSourceConfigurations

This operation requests all audio source configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddAudioEncoderConfiguration command on the media profile. The result varies depending on the capabilities, configurations and settings in the device.

Returns a ONVIF::Media::Elements::GetCompatibleAudioSourceConfigurationsResponse object.

 $response = $interface->GetCompatibleAudioSourceConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸ¦‹ GetCompatibleVideoAnalyticsConfigurations

This operation requests all video analytic configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddVideoAnalyticsConfiguration command on the media profile. The result varies depending on the capabilities, configurations and settings in the device.

Returns a ONVIF::Media::Elements::GetCompatibleVideoAnalyticsConfigurationsResponse object.

 $response = $interface->GetCompatibleVideoAnalyticsConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

🫢 GetCompatibleMetadataConfigurations

This operation requests all the metadata configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddMetadataConfiguration command on the media profile. The result varies depending on the capabilities, configurations and settings in the device.

Returns a ONVIF::Media::Elements::GetCompatibleMetadataConfigurationsResponse object.

 $response = $interface->GetCompatibleMetadataConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸ”₯ GetCompatibleAudioOutputConfigurations

This command lists all audio output configurations of a device that are compatible with a certain media profile. Each returned configuration shall be a valid input for the AddAudioOutputConfiguration command.

Returns a ONVIF::Media::Elements::GetCompatibleAudioOutputConfigurationsResponse object.

 $response = $interface->GetCompatibleAudioOutputConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸ“ GetCompatibleAudioDecoderConfigurations

This operation lists all the audio decoder configurations of the device that are compatible with a certain media profile. Each of the returned configurations shall be a valid input parameter for the AddAudioDecoderConfiguration command on the media profile.

Returns a ONVIF::Media::Elements::GetCompatibleAudioDecoderConfigurationsResponse object.

 $response = $interface->GetCompatibleAudioDecoderConfigurations( {
   ProfileToken => $some_value, # ReferenceToken
 },,
);

πŸ’€ Now we're setting things (main character energy incoming)

🌟 SetVideoSourceConfiguration

This operation modifies a video source configuration. The ForcePersistence flag indicates if the changes shall remain after reboot of the device.

Running streams using this configuration may be immediately updated according to the new settings. But bestie, listen β€” the changes are not guaranteed to take effect unless the client requests a new stream URI and restarts any affected stream. NVC methods for changing a running stream are out of scope for this specification.

⚠️ So like, don't just assume your live stream instantly reshaped itself. New stream URI + restart = the actual safe path. Fr fr.

Returns a ONVIF::Media::Elements::SetVideoSourceConfigurationResponse object.

 $response = $interface->SetVideoSourceConfiguration( {
   Configuration =>  { # ONVIF::Media::Types::VideoSourceConfiguration
     SourceToken => $some_value, # ReferenceToken
     Bounds => ,
     Extension =>  { # ONVIF::Media::Types::VideoSourceConfigurationExtension
       Rotate =>  { # ONVIF::Media::Types::Rotate
         Mode => $some_value, # RotateMode
         Degree =>  $some_value, # int
         Extension =>  { # ONVIF::Media::Types::RotateExtension
         },
       },
       Extension =>  { # ONVIF::Media::Types::VideoSourceConfigurationExtension2
       },
     },
   },
   ForcePersistence =>  $some_value, # boolean
 },,
);

πŸ¦‹ SetVideoEncoderConfiguration

SessionTimeout is provided as a hint for keeping the rtsp session by a device. If necessary the device may adapt parameter values for SessionTimeout elements without returning an error. For the time between keep alive calls the client shall adhere to the timeout value signaled via RTSP. πŸ‘€

Returns a ONVIF::Media::Elements::SetVideoEncoderConfigurationResponse object.

        $response = $interface->SetVideoEncoderConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::VideoEncoderConfiguration
             Encoding => $some_value, # VideoEncoding
             Resolution =>  { # ONVIF::Media::Types::VideoResolution
               Width =>  $some_value, # int
               Height =>  $some_value, # int
             },
             Quality =>  $some_value, # float
             RateControl =>  { # ONVIF::Media::Types::VideoRateControl
               FrameRateLimit =>  $some_value, # int
               EncodingInterval =>  $some_value, # int
               BitrateLimit =>  $some_value, # int
             },
             MPEG4 =>  { # ONVIF::Media::Types::Mpeg4Configuration
               GovLength =>  $some_value, # int
               Mpeg4Profile => $some_value, # Mpeg4Profile
             },
             H264 =>  { # ONVIF::Media::Types::H264Configuration
               GovLength =>  $some_value, # int
               H264Profile => $some_value, # H264Profile
             },
             Multicast =>  { # ONVIF::Media::Types::MulticastConfiguration
               Address =>  { # ONVIF::Media::Types::IPAddress
                 Type => $some_value, # IPType
                 IPv4Address => $some_value, # IPv4Address
                 IPv6Address => $some_value, # IPv6Address
               },
               Port =>  $some_value, # int
               TTL =>  $some_value, # int
               AutoStart =>  $some_value, # boolean
             },
             SessionTimeout =>  $some_value, # duration
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

πŸ’« SetAudioSourceConfiguration

Bestie, this one changes up an audio source configuration ✨. That ForcePersistence flag? It tells you whether the changes are gonna stick around after the device reboots or nah πŸ”.

Heads up though, real talk: streams that are already running with this configuration may get updated immediately with the new settings β€” but it's not a promise, okay? The changes are not guaranteed to take effect unless the client asks for a brand new stream URI and restarts every affected stream. And listen β€” NVC methods for changing a running stream? Totally out of scope for this specification. Not our problem, not our era πŸ™ˆ.

Returns a ONVIF::Media::Elements::SetAudioSourceConfigurationResponse object πŸŽ€.

        $response = $interface->SetAudioSourceConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::AudioSourceConfiguration
             SourceToken => $some_value, # ReferenceToken
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

🎧 SetAudioEncoderConfiguration

Same vibe, audio encoder edition πŸ’œ. This modifies an audio encoder configuration. ForcePersistence = do these changes survive the reboot or not, your call πŸ”.

Running streams using this config may update right away with the new settings β€” but again, no guarantee, it only really lands once the client requests a new stream URI and restarts the affected streams. NVC methods for swapping out a running stream? Out of scope for this spec, periodt πŸ’….

Returns a ONVIF::Media::Elements::SetAudioEncoderConfigurationResponse object ✨.

        $response = $interface->SetAudioEncoderConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::AudioEncoderConfiguration
             Encoding => $some_value, # AudioEncoding
             Bitrate =>  $some_value, # int
             SampleRate =>  $some_value, # int
             Multicast =>  { # ONVIF::Media::Types::MulticastConfiguration
               Address =>  { # ONVIF::Media::Types::IPAddress
                 Type => $some_value, # IPType
                 IPv4Address => $some_value, # IPv4Address
                 IPv6Address => $some_value, # IPv6Address
               },
               Port =>  $some_value, # int
               TTL =>  $some_value, # int
               AutoStart =>  $some_value, # boolean
             },
             SessionTimeout =>  $some_value, # duration
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

πŸ” SetVideoAnalyticsConfiguration

Okay so this command modifies a video analytics configuration 🧠. The ForcePersistence flag says whether the changes stay after the device reboots or not.

Here's the lowkey important part πŸ‘€: running streams using this config shall be immediately updated according to the new settings. Like, it's not optional, because otherwise you get inconsistencies between the scene description that the rule engine processes and the notifications coming out of the analytics engine and rule engine β€” and both of those are referencing the very same video analytics configuration token. Messy. We don't do messy πŸ’€.

Returns a ONVIF::Media::Elements::SetVideoAnalyticsConfigurationResponse object πŸ¦‹.

        $response = $interface->SetVideoAnalyticsConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::VideoAnalyticsConfiguration
             AnalyticsEngineConfiguration =>  { # ONVIF::Media::Types::AnalyticsEngineConfiguration
               AnalyticsModule =>  { # ONVIF::Media::Types::Config
                 Parameters =>  { # ONVIF::Media::Types::ItemList
                   SimpleItem => ,
                   ElementItem =>  {
                   },
                   Extension =>  { # ONVIF::Media::Types::ItemListExtension
                   },
                 },
               },
               Extension =>  { # ONVIF::Media::Types::AnalyticsEngineConfigurationExtension
               },
             },
             RuleEngineConfiguration =>  { # ONVIF::Media::Types::RuleEngineConfiguration
               Rule =>  { # ONVIF::Media::Types::Config
                 Parameters =>  { # ONVIF::Media::Types::ItemList
                   SimpleItem => ,
                   ElementItem =>  {
                   },
                   Extension =>  { # ONVIF::Media::Types::ItemListExtension
                   },
                 },
               },
               Extension =>  { # ONVIF::Media::Types::RuleEngineConfigurationExtension
               },
             },
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

πŸ“Ό SetMetadataConfiguration

This operation modifies a metadata configuration ✨. ForcePersistence tells you if the changes stay after the device reboots. Oh, and a little special rule just for this one πŸŽ€: changes in the Multicast settings shall always be persistent. No take-backs, no exceptions, they live there now πŸ’….

Running streams using this config may be updated immediately with the new settings β€” but it's not guaranteed to take effect unless the client requests a new stream URI and restarts all the affected streams. And NVC methods for changing a running stream? Out of scope for this specification, iykyk πŸ™ˆ.

Returns a ONVIF::Media::Elements::SetMetadataConfigurationResponse object 🌸.

        $response = $interface->SetMetadataConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::MetadataConfiguration
             PTZStatus =>  { # ONVIF::Media::Types::PTZFilter
               Status =>  $some_value, # boolean
               Position =>  $some_value, # boolean
             },
             Analytics =>  $some_value, # boolean
             Multicast =>  { # ONVIF::Media::Types::MulticastConfiguration
               Address =>  { # ONVIF::Media::Types::IPAddress
                 Type => $some_value, # IPType
                 IPv4Address => $some_value, # IPv4Address
                 IPv6Address => $some_value, # IPv6Address
               },
               Port =>  $some_value, # int
               TTL =>  $some_value, # int
               AutoStart =>  $some_value, # boolean
             },
             SessionTimeout =>  $some_value, # duration
             AnalyticsEngineConfiguration =>  { # ONVIF::Media::Types::AnalyticsEngineConfiguration
               AnalyticsModule =>  { # ONVIF::Media::Types::Config
                 Parameters =>  { # ONVIF::Media::Types::ItemList
                   SimpleItem => ,
                   ElementItem =>  {
                   },
                   Extension =>  { # ONVIF::Media::Types::ItemListExtension
                   },
                 },
               },
               Extension =>  { # ONVIF::Media::Types::AnalyticsEngineConfigurationExtension
               },
             },
             Extension =>  { # ONVIF::Media::Types::MetadataConfigurationExtension
             },
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

πŸ”Š SetAudioOutputConfiguration

This one modifies an audio output configuration 🎢. The ForcePersistence flag indicates if the changes shall remain after reboot of the device β€” short and sweet, no dramatic caveats this time 😌.

Returns a ONVIF::Media::Elements::SetAudioOutputConfigurationResponse object 🫢.

        $response = $interface->SetAudioOutputConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::AudioOutputConfiguration
             OutputToken => $some_value, # ReferenceToken
             SendPrimacy =>  $some_value, # anyURI
             OutputLevel =>  $some_value, # int
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

🎚️ SetAudioDecoderConfiguration

Modifies an audio decoder configuration. That's it, that's the whole thing πŸ’œ. And the ForcePersistence flag indicates if the changes shall remain after reboot of the device πŸ”.

Returns a ONVIF::Media::Elements::SetAudioDecoderConfigurationResponse object ✨.

        $response = $interface->SetAudioDecoderConfiguration( {
           Configuration =>  { # ONVIF::Media::Types::AudioDecoderConfiguration
           },
           ForcePersistence =>  $some_value, # boolean
         },,
        );

πŸŽ₯ GetVideoSourceConfigurationOptions

Okay so this operation returns the available options β€” like the supported values and ranges for video source configuration parameters β€” for when the video source parameters get reconfigured πŸ‘‘.

Here's how the resolution works: if a video source configuration is specified, the options shall concern that particular configuration. If a media profile is specified instead, the options shall be compatible with that media profile. Context matters, bestie πŸ¦‹.

Returns a ONVIF::Media::Elements::GetVideoSourceConfigurationOptionsResponse object 🌈.

        $response = $interface->GetVideoSourceConfigurationOptions( {
           ConfigurationToken => $some_value, # ReferenceToken
           ProfileToken => $some_value, # ReferenceToken
         },,
        );

πŸ“Ή GetVideoEncoderConfigurationOptions

This response contains all the available video encoder configuration options ✨. If a video encoder configuration is specified, the options shall concern that particular configuration. If a media profile is specified, the options shall be compatible with that media profile. And if you pass no tokens at all? Then the options shall be considered generic for the device 🫢 β€” like a little default menu, no cap.

Returns a ONVIF::Media::Elements::GetVideoEncoderConfigurationOptionsResponse object πŸŽ€.

        $response = $interface->GetVideoEncoderConfigurationOptions( {
           ConfigurationToken => $some_value, # ReferenceToken
           ProfileToken => $some_value, # ReferenceToken
         },,
        );

🎀 GetAudioSourceConfigurationOptions

This operation returns the available options (supported values and ranges for audio source configuration parameters) for when the audio source parameters are reconfigured πŸ’…. If an audio source configuration is specified, the options shall concern that particular configuration. If a media profile is specified, the options shall be compatible with that media profile πŸ¦‹.

Returns a ONVIF::Media::Elements::GetAudioSourceConfigurationOptionsResponse object ⭐.

        $response = $interface->GetAudioSourceConfigurationOptions( {
           ConfigurationToken => $some_value, # ReferenceToken
           ProfileToken => $some_value, # ReferenceToken
         },,
        );

$response = $interface->GetAudioSourceConfigurationOptions( { ConfigurationToken => $some_value, # ReferenceToken ProfileToken => $some_value, # ReferenceToken },, );


### 🎧 GetAudioEncoderConfigurationOptions

Okay so picture this: you're reconfiguring the audio encoder params and you need to know what's actually allowed. This operation hands you the available options β€” the supported values and the ranges for audio encoder configuration parameters. It's giving "here's your menu, bestie" πŸ’…

Returns a `ONVIF::Media::Elements::GetAudioEncoderConfigurationOptionsResponse` object.

$response = $interface->GetAudioEncoderConfigurationOptions( { ConfigurationToken => $some_value, # ReferenceToken ProfileToken => $some_value, # ReferenceToken },, );


### πŸ—‚οΈ GetMetadataConfigurationOptions

Same vibe, different config: this one returns the available options (supported values and ranges for metadata configuration parameters) for changing the metadata configuration.

Returns a `ONVIF::Media::Elements::GetMetadataConfigurationOptionsResponse` object.

$response = $interface->GetMetadataConfigurationOptions( { ConfigurationToken => $some_value, # ReferenceToken ProfileToken => $some_value, # ReferenceToken },, );


### πŸ”Š GetAudioOutputConfigurationOptions

You're configuring an audio output and you need the deets. This operation returns the available options (supported values and ranges for audio output configuration parameters) for configuring an audio output. Slay. ✨

Returns a `ONVIF::Media::Elements::GetAudioOutputConfigurationOptionsResponse` object.

$response = $interface->GetAudioOutputConfigurationOptions( { ConfigurationToken => $some_value, # ReferenceToken ProfileToken => $some_value, # ReferenceToken },, );


### πŸ”‰ GetAudioDecoderConfigurationOptions

This command lists the audio decoding capabilities for a given profile and configuration of a device. Like a little capability show-and-tell 🫢

Returns a `ONVIF::Media::Elements::GetAudioDecoderConfigurationOptionsResponse` object.

$response = $interface->GetAudioDecoderConfigurationOptions( { ConfigurationToken => $some_value, # ReferenceToken ProfileToken => $some_value, # ReferenceToken },, );


### πŸ”’ GetGuaranteedNumberOfVideoEncoderInstances

The `GetGuaranteedNumberOfVideoEncoderInstances` command can be used to request the minimum number of guaranteed video encoder instances (applications) per Video Source Configuration. Yes, it's a whole mouthful of a name, and yes, it's doing exactly what it says 😌

Returns a `ONVIF::Media::Elements::GetGuaranteedNumberOfVideoEncoderInstancesResponse` object.

$response = $interface->GetGuaranteedNumberOfVideoEncoderInstances( { ConfigurationToken => $some_value, # ReferenceToken },, );


### πŸ“‘ GetStreamUri

> Heads up, bestie: for full compatibility with other ONVIF services, a device should **not** generate Uris longer than 128 octets. That's `128`, not vibes-based. Note it. πŸ’€

Returns a `ONVIF::Media::Elements::GetStreamUriResponse` object.

$response = $interface->GetStreamUri( { StreamSetup => { # ONVIF::Media::Types::StreamSetup Stream => $some_value, # StreamType Transport => { # ONVIF::Media::Types::Transport Protocol => $some_value, # TransportProtocol }, }, ProfileToken => $some_value, # ReferenceToken },, );


### ▢️ StartMulticastStreaming

This command starts multicast streaming using a specified media profile of a device. Here's the important part: streaming continues until `StopMulticastStreaming` is called for the same Profile. And the streaming **shall continue after a reboot** of the device until a `StopMulticastStreaming` request is received. Iconic levels of commitment, honestly. The multicast address, port and TTL are configured in the `VideoEncoderConfiguration`, `AudioEncoderConfiguration` and `MetadataConfiguration` respectively.

Returns a `ONVIF::Media::Elements::StartMulticastStreamingResponse` object.

$response = $interface->StartMulticastStreaming( { ProfileToken => $some_value, # ReferenceToken },, );


### ⏹️ StopMulticastStreaming

This command stops multicast streaming using a specified media profile of a device. The off switch. The "we're done here" button πŸ›‘

Returns a `ONVIF::Media::Elements::StopMulticastStreamingResponse` object.

$response = $interface->StopMulticastStreaming( { ProfileToken => $some_value, # ReferenceToken },, );


### 🎯 SetSynchronizationPoint

Okay this one needs a sec, because it's actually so clever. Synchronization points allow clients to decode and correctly use all data after the synchronization point. Example time: if a video stream is configured with a large I-frame distance and a client loses a single packet, the client does **not** display video until the next I-frame is transmitted. Rude, right? 😭 In such cases, the client can request a Synchronization Point which enforces the device to add an I-Frame as soon as possible.

Clients can request Synchronization Points for profiles. The device shall add synchronization points for all streams associated with this profile. Similarly, a synchronization point is used to get an update on full PTZ or event status through the metadata stream. If a video stream is associated with the profile, an I-frame shall be added to this video stream. If a PTZ metadata stream is associated to the profile, the PTZ position shall be repeated within the metadata stream. Honestly? Chef's kiss. πŸ‘‘

Returns a `ONVIF::Media::Elements::SetSynchronizationPointResponse` object.

$response = $interface->SetSynchronizationPoint( { ProfileToken => $some_value, # ReferenceToken },, );


### πŸ“Έ GetSnapshotUri

A client uses the `GetSnapshotUri` command to obtain a JPEG snapshot from the device. Now listen closely, because these next bits matter:

- The returned URI shall remain valid **indefinitely** even if the profile is changed.
- The `ValidUntilConnect`, `ValidUntilReboot` and `Timeout` Parameter shall be set accordingly (`ValidUntilConnect=false`, `ValidUntilReboot=false`, `timeout=PT0S`).
- The URI can be used for acquiring a JPEG image through a HTTP GET operation.
- The image encoding will **always** be JPEG regardless of the encoding setting in the media profile.
- The Jpeg settings (like resolution or quality) may be taken from the profile if suitable.
- The provided image will be updated automatically and independent from calls to `GetSnapshotUri`.

Returns a `ONVIF::Media::Elements::GetSnapshotUriResponse` object.

$response = $interface->GetSnapshotUri( { ProfileToken => $some_value, # ReferenceToken },, );


### πŸŽ₯ GetVideoSourceModes

A device returns the information for current video source mode and settable video source modes of specified video source. And a device that indicates a capability of `VideoSourceModes` shall support this command. No skipping, bestie 🚫

Returns a `ONVIF::Media::Elements::GetVideoSourceModesResponse` object.

$response = $interface->GetVideoSourceModes( { VideoSourceToken => $some_value, # ReferenceToken },, );


### πŸ”„ SetVideoSourceMode

`SetVideoSourceMode` changes the media profile structure relating to video source for the specified video source mode. A device that indicates a capability of `VideoSourceModes` shall support this command. And uh, heads up: **the behavior after changing the mode is not defined in this specification.** So like… undefined behaviour central. Proceed accordingly πŸ™ˆ

Returns a `ONVIF::Media::Elements::SetVideoSourceModeResponse` object.

$response = $interface->SetVideoSourceMode( { VideoSourceToken => $some_value, # ReferenceToken VideoSourceModeToken => $some_value, # ReferenceToken },, );


### πŸ–₯️ GetOSDs

Get the OSDs. Plural. All of them. ✨

Returns a `ONVIF::Media::Elements::GetOSDsResponse` object.

$response = $interface->GetOSDs( { ConfigurationToken => $some_value, # ReferenceToken },, );


### πŸ–ΌοΈ GetOSD

Get the OSD. Singular. One of them πŸŽ€

Returns a `ONVIF::Media::Elements::GetOSDResponse` object.

$response = $interface->GetOSD( { OSDToken => $some_value, # ReferenceToken },, );


### πŸŽ›οΈ GetOSDOptions

Get the OSD Options. That's it, that's the whole description πŸ’…

Returns a `ONVIF::Media::Elements::GetOSDOptionsResponse` object.

$response = $interface->GetOSDOptions( { ConfigurationToken => $some_value, # ReferenceToken },, );


### πŸ› οΈ SetOSD

Set the OSD. Big config object incoming β€” this is the whole `ONVIF::Media::Types::OSDConfiguration` situation, so buckle up πŸ¦‹

Returns a `ONVIF::Media::Elements::SetOSDResponse` object.

$response = $interface->SetOSD( { OSD => { # ONVIF::Media::Types::OSDConfiguration VideoSourceConfigurationToken => { value => $some_value }, Type => $some_value, # OSDType Position => { # ONVIF::Media::Types::OSDPosConfiguration Type => $some_value, # string Pos => , Extension => { # ONVIF::Media::Types::OSDPosConfigurationExtension }, }, TextString => { # ONVIF::Media::Types::OSDTextConfiguration Type => $some_value, # string DateFormat => $some_value, # string TimeFormat => $some_value, # string FontSize => $some_value, # int FontColor => { # ONVIF::Media::Types::OSDColor Color => , }, BackgroundColor => { # ONVIF::Media::Types::OSDColor Color => , }, PlainText => $some_value, # string Extension => { # ONVIF::Media::Types::OSDTextConfigurationExtension }, }, Image => { # ONVIF::Media::Types::OSDImgConfiguration ImgPath => $some_value, # anyURI Extension => { # ONVIF::Media::Types::OSDImgConfigurationExtension }, }, Extension => { # ONVIF::Media::Types::OSDConfigurationExtension }, }, },, );


### βž• CreateOSD

Create the OSD. Same giant `ONVIF::Media::Types::OSDConfiguration` payload as `SetOSD`, bestie β€” no shortcuts here 🫢

Returns a `ONVIF::Media::Elements::CreateOSDResponse` object.

$response = $interface->CreateOSD( { OSD => { # ONVIF::Media::Types::OSDConfiguration VideoSourceConfigurationToken => { value => $some_value }, Type => $some_value, # OSDType Position => { # ONVIF::Media::Types::OSDPosConfiguration Type => $some_value, # string Pos => , Extension => { # ONVIF::Media::Types::OSDPosConfigurationExtension }, }, TextString => { # ONVIF::Media::Types::OSDTextConfiguration Type => $some_value, # string DateFormat => $some_value, # string TimeFormat => $some_value, # string FontSize => $some_value, # int FontColor => { # ONVIF::Media::Types::OSDColor Color => , }, BackgroundColor => { # ONVIF::Media::Types::OSDColor Color => , }, PlainText => $some_value, # string Extension => { # ONVIF::Media::Types::OSDTextConfigurationExtension }, }, Image => { # ONVIF::Media::Types::OSDImgConfiguration ImgPath => $some_value, # anyURI Extension => { # ONVIF::Media::Types::OSDImgConfigurationExtension }, }, Extension => { # ONVIF::Media::Types::OSDConfigurationExtension }, }, },, );


### πŸ—‘οΈ DeleteOSD

Delete the OSD. Bye bestie, so sad to see you go 😭

Returns a `ONVIF::Media::Elements::DeleteOSDResponse` object.

$response = $interface->DeleteOSD( { OSDToken => $some_value, # ReferenceToken },, );

$response = $interface->DeleteOSD( { OSDToken => $some_value, # ReferenceToken },, );


okay so like β€” bestie β€” yes, that double comma really is in there 😭 don't come for me, I'm just the messenger. That's the `DeleteOSD` call, `$response` catching whatever comes back, and `OSDToken` getting your `ReferenceToken` value. Slay, that's the whole call πŸŽ€

---

# ✨ AUTHOR ✨

This absolute icon of a page was generated by `SOAP::WSDL` β€” and the exact timestamp, no cap, is:

Mon Jun 30 13:26:09 2014


not me getting emotional over a build script from 2014 doing its little job and clocking out πŸ’€ honestly king behavior πŸ‘‘

---

and that's a wrap on this whole thing, bestie!! you made it to the very end, which is honestly main character energy 🌟 the page you just read is from `perl v5.42.3`, dated `1980-01-01` (yes, the actual date on the footer, she's vintage and she knows it πŸ’…), and it lives at `ONVIF::...diaPort(3)` in the User Contributed Perl Documentation section. go forth and delete your OSDs responsibly πŸ«Άβœ¨πŸ¦‹
πŸ“¦ where this page comes from