move filter fields to end of CBytePerfMon to make CBytePerfMon backwa… #896
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.
…rd compatible
Many srt applications use srt library dynamically.
If application compiled with 1.3.4 srt.h but then maintainer released srt 1.4.0 for this application everything will work fine as api is backward compatible, SRT_SOCKOPT is backward compatible, srt_setsockopt will just fail if you give it new unknown options etc.
But CBytePerfMon is not backward compatible now and this may be a problem if user want to switch from one srt version to another. This is very powerful option especially taking into account how fast SRT developed.
All we need to do is just add new options to the end of CBytePerfMon and don't remove old ones.
CBytePerfMon was the same from 1.3 till recent 1.4. Unfortunately I missed this commit before 1.4 was released but it's not late to move new "filter-related" params to the end of the structure and follow SRT_SOCKOPT-like rule for CBytePerfMon update