- Add subscription_termination_time and next_renewal_time tracking to ONVIF class
- Add update_renewal_times() helper method to parse and store termination times
- Initialize renewal tracking in constructor
- Capture TerminationTime from CreatePullPointSubscriptionResponse
- Update times after successful Renew operations
- Implement conditional renewal logic in WaitForMessage() to only renew 10 seconds before expiration
- Add unit tests for renewal timing logic
This reduces unnecessary ONVIF traffic by only renewing subscriptions when needed,
following ONVIF specification best practices.
Co-authored-by: connortechnology <925519+connortechnology@users.noreply.github.com>