{"id":850,"date":"2022-12-18T20:48:46","date_gmt":"2022-12-18T12:48:46","guid":{"rendered":"https:\/\/www.fanyamin.com\/wordpress\/?p=850"},"modified":"2022-12-18T20:49:06","modified_gmt":"2022-12-18T12:49:06","slug":"application-limitation-region-detector","status":"publish","type":"post","link":"https:\/\/www.fanyamin.com\/wordpress\/?p=850","title":{"rendered":"Application Limitation Region Detector"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.fanyamin.com\/wordpress\/wp-content\/uploads\/2022\/12\/image-1671367705144.png\" alt=\"file\" \/><\/p>\n<pre><code>@startuml\nstruct AlrDetectorConfig {\n\n  double bandwidth_usage_ratio = 0.65;\n  double start_budget_level_ratio = 0.80;\n  double stop_budget_level_ratio = 0.50;\n  std::unique_ptr&lt;StructParametersParser&gt; Parser();\n}\n\nclass AlrDetector {\n\n  void OnBytesSent(size_t bytes_sent, int64_t send_time_ms);\n\n  void SetEstimatedBitrate(int bitrate_bps);\n\n  absl::optional&lt;int64_t&gt; GetApplicationLimitedRegionStartTime() const;\n\n  const AlrDetectorConfig conf_;\n\n  absl::optional&lt;int64_t&gt; last_send_time_ms_;\n\n  IntervalBudget alr_budget_;\n\n  absl::optional&lt;int64_t&gt; alr_started_time_ms_;\n\n  RtcEventLog* event_log_;\n}\nAlrDetectorConfig --o AlrDetector\n@enduml<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>@startuml struct AlrDetectorConfig { double bandwidth_usage_ratio = 0.65; double start_budget_level_ratio = 0.80; double stop_budget_level_ratio = 0.50; std::unique_ptr&lt;StructParametersParser&gt; Parser(); } class AlrDetector { void OnBytesSent(size_t bytes_sent, int64_t send_time_ms); void SetEstimatedBitrate(int bitrate_bps); absl::optional&lt;int64_t&gt; GetApplicationLimitedRegionStartTime() const; const AlrDetectorConfig conf_; absl::optional&lt;int64_t&gt; last_send_time_ms_; IntervalBudget alr_budget_; absl::optional&lt;int64_t&gt; alr_started_time_ms_; RtcEventLog* event_log_; } AlrDetectorConfig &#8211;o AlrDetector @enduml <a class=\"read-more\" href=\"https:\/\/www.fanyamin.com\/wordpress\/?p=850\" title=\"Permanent Link to: Application Limitation Region Detector\">&rarr;Read&nbsp;more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-850","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/850"}],"collection":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=850"}],"version-history":[{"count":2,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/850\/revisions"}],"predecessor-version":[{"id":853,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/850\/revisions\/853"}],"wp:attachment":[{"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fanyamin.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}