Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions doc/Media2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1040,9 +1040,10 @@
Specification.</para>
</listitem>
</itemizedlist>
<para>TheVideoEncoderConfiguration structure also contains multicast parameters. </para>
<para>The VideoEncoderConfiguration structure also contains multicast parameters. </para>
<para>If the whole RateControl parameter structure is missing the current state of rate control is undefined and vendor specific. A device that supports disabling of the rate control mechanisms shall reflect that by omitting the RateControl element when disabled; otherwise it shall return the current values used for RateControl. If RateControl is missing, the respective options define whether a RateControl element can be (re-)added.</para>
<para>The resolution's width and height are based on the Bounds field of the VideoSourceConfiguration. Therefore, if there is a 90-degree rotation, the width will represent the height of the encoded video, and the height will represent the width of the encoded video.</para>
<para>To further reduce bitrate, the device may lower encoding quality in regions of lesser importance, controlled by the EncodingStrategy parameter. Values are defined in EncodingStrategiesSupported. Encoding efficiency can be enhanced by enabling DynamicGov and DynamicFps. DynamicGov can be constrained using MaxGovLength that must be higher than GovLength and DynamicFps can be constrained with MinFramerate that must be higher than 0.</para>
<para>The resolution's width and height are based on the Bounds field of the VideoSourceConfiguration. Therefore, if there is a 90-degree rotation, the width will represent the height of the encoded video, and the height will represent the width of the encoded video.</para>

@sujithhanwha sujithhanwha Jul 30, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Better to mention this in the description "MaxGovLength should strictly be > GovLength, and MinFrameRate should strictly be > 0"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reworded this a bit to include these details

</section>
<section>
<title>Audio source configuration</title>
Expand Down
47 changes: 46 additions & 1 deletion wsdl/ver10/schema/onvif.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -1083,7 +1083,7 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
</xs:sequence>
<xs:attribute name="GovLength" type="xs:int">
<xs:annotation>
<xs:documentation>Group of Video frames length. Determines typically the interval in which the I-Frames will be coded. An entry of 1 indicates I-Frames are continuously generated. An entry of 2 indicates that every 2nd image is an I-Frame, and 3 only every 3rd frame, etc. The frames in between are coded as P or B Frames.</xs:documentation>
<xs:documentation>Group of Video frames length. Determines typically the interval in which the I-Frames will be coded. An entry of 1 indicates I-Frames are continuously generated. An entry of 2 indicates that every 2nd image is an I-Frame, and 3 only every 3rd frame, etc. The frames in between are coded as P or B Frames. The actual interval may be higher due to e.g. dynamic encoding.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AnchorFrameDistance" type="xs:int">
Expand Down Expand Up @@ -1156,6 +1156,31 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
<xs:documentation>When this parameter is set to a non-zero value, ConstantBitRate shall be ignored.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DynamicGov" type="xs:boolean" minOccurs="0">
<xs:annotation>
<xs:documentation>Optional - Indicates if the device is allowed to dynamically change the GovLength. The GovLength is the minimum interval rather than a fixed value. The MaxGovLength is the upper bound.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MaxGovLength" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>Optional - Indicates the maximum interval in which the I-Frames will be coded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DynamicFPS" type="xs:boolean" minOccurs="0">
<xs:annotation>
<xs:documentation>Optional - Indicates that device is allowed to skip unnecessary P-frames when there is no motion. To ensure a minimum framerate, set MinFrameRate. The FrameRateLimit is the upper bound. GuaranteedFrameRate should be disabled automatically when DynamicFps is enabled.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MinFrameRate" type="xs:float" minOccurs="0">
<xs:annotation>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest to make MinFrameRate as float, since we use float for frameratelimit.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed to float

<xs:documentation>Optional - Indicates the minimum framerate.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="EncodingStrategy" type="xs:string" minOccurs="0">
Comment thread
bsriramprasad marked this conversation as resolved.
<xs:annotation>
<xs:documentation>Optional - Indicates the encoding strategy for reducing detail in regions of lower interest. It affects performance of DynamicGov and DynamicFPS.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> <!-- first ONVIF then Vendor -->
</xs:sequence>
<xs:attribute name="ConstantBitRate" type="xs:boolean">
Expand Down Expand Up @@ -1227,6 +1252,26 @@ IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE FO
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DynamicGovSupported" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates the support for enabling DynamicGOV and configuring MaxGovLength.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MaxGovLengthRange" type="tt:IntList">
Comment thread
bjornvolcker marked this conversation as resolved.
<xs:annotation>
<xs:documentation>Exactly two values, which define the Lower and Upper bounds for the supported maximum group of Video frames length used for DynamicGov. These values typically correspond to the I-Frame distance.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DynamicFpsSupported" type="xs:boolean">
<xs:annotation>
<xs:documentation>Indicates the support for enabling DynamicFPS and configuring MinFrameRate.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="EncodingStrategiesSupported" type="tt:StringAttrList">
<xs:annotation>
<xs:documentation>List of supported strategy for bitrate reduction encoding defined by the device.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SecureStreamingProtocolAlgorithms" type="tt:StringAttrList" use="optional">
<xs:annotation>
<xs:documentation>If secure RTSP streaming is supported, this shall return the list of supported cryptographic algorithms as defined by tt:SrtpSecurityAlgorithms.</xs:documentation>
Expand Down