-
Notifications
You must be signed in to change notification settings - Fork 123
Dynamic GOV / FPS and compression #741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
cemond-genetec
wants to merge
16
commits into
development
Choose a base branch
from
video/dynamic-compression
base: development
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
16 commits
Select commit
Hold shift + click to select a range
ce6e2c1
Initial commit of dynamic compression parameters
cemond-genetec 55cf2b5
Add caps
cemond-genetec af6541f
Clean to put only boolean DynamicGOV and FPS
cemond-genetec 4ce4fb3
Fix parameter documentation from code review
cemond-genetec bd96f7b
Move DynamicGov-Fps in RateControl2 and add MaxGovLength MinFramerate
cemond-genetec 655ceff
Add effort level
cemond-genetec 447a997
Add description in Media2 doc
cemond-genetec 70b6ef0
Remove change in Media1 doc
cemond-genetec 0c9e0e1
Rename to EncodingStrategy and add MaxGovLengthRange
cemond-genetec 384cc22
Add plural to EncodingStrategiesSupported capability
cemond-genetec 486546b
Add mention that GuaranteedFrameRate is disabled when DynamicFps is e…
cemond-genetec 466a55e
Update EncodingStrategy name in Media2.xml
cemond-genetec 0dad493
Remove that in MinFrameRate
cemond-genetec 1c51733
Merge branch 'development' into video/dynamic-compression
fschrayer-genetec 455b869
Changed "Skip I frames" to "Change GovLengh"
fschrayer-genetec de9e5e9
Changing the MinFrameRate to float to follow Framerate
fschrayer-genetec File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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"> | ||
|
|
@@ -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> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggest to make MinFrameRate as float, since we use float for frameratelimit. There was a problem hiding this comment. Choose a reason for hiding this commentThe 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"> | ||
|
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"> | ||
|
|
@@ -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"> | ||
|
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> | ||
|
|
||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
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"
There was a problem hiding this comment.
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