- 
                Notifications
    
You must be signed in to change notification settings  - Fork 82
 
feat: Add playout delay header interceptor #151
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
base: master
Are you sure you want to change the base?
Conversation
aab5891    to
    3ab918a      
    Compare
  
    3ab918a    to
    0aae0ae      
    Compare
  
    0aae0ae    to
    cc23b0e      
    Compare
  
    
          Codecov Report
 
 @@            Coverage Diff             @@
##           master     #151      +/-   ##
==========================================
- Coverage   79.05%   78.88%   -0.18%     
==========================================
  Files          63       65       +2     
  Lines        3189     3234      +45     
==========================================
+ Hits         2521     2551      +30     
- Misses        555      565      +10     
- Partials      113      118       +5     
 Flags with carried forward coverage won't be shown. Click here to find out more. 
 Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.  | 
    
cc23b0e    to
    4ad27e3      
    Compare
  
    4ad27e3    to
    fde19d2      
    Compare
  
    fde19d2    to
    380cc72      
    Compare
  
    380cc72    to
    da7c156      
    Compare
  
    da7c156    to
    9c19688      
    Compare
  
    9c19688    to
    39a4b2e      
    Compare
  
    39a4b2e    to
    3f392dc      
    Compare
  
    3f392dc    to
    e69fdde      
    Compare
  
    e69fdde    to
    b16c5ce      
    Compare
  
    b16c5ce    to
    ea6e6a3      
    Compare
  
    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.
I'm not very familiar with the extension but have two questions: The document mentions that a sender may stop sending the extension if it receives a RR indicating that at it has been received at least once. Do we need that to save bytes?
And second question: Is it enough to send fixed limits, or do we need to be able to update the limits of the interceptor?
| 
               | 
          ||
| const playoutDelayURI = "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay" | ||
| 
               | 
          ||
| // BindLocalStream returns a writer that adds a rtp.TransportCCExtension | 
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.
copy paste rtp.TransportCCExtension?
        
          
                pkg/playoutdelay/playout_delay.go
              
                Outdated
          
        
      | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| // | ID | len=2 | MIN delay | MAX delay | | ||
| // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||
| type Extension struct { | 
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.
I think this should be part of pion/rtp
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.
Created pion/rtp#196 to add it to pion/rtp.
          
 Yes, although since it's only a few bytes I figured I'd do it in a followup PR 😅 
 The limits of the interceptor should be able to change but I'm actually not sure of a good way to do that. Since the developer only instantiates a factory, wouldn't they need access to the underlying interceptor to update the parameters on the fly? Do you have suggestions for such an API?  | 
    
          
 Alright, follow up PR sounds fine to me :) 
 In the bandwidth estimation and similar interceptors, you can register a callback that is called whenever the factory creates a new interceptor. The callback receives the instance of the interceptor for the PeerConnection. I am not sure if this is the best design we can have but I don't know of a better way.  | 
    
This interceptor adds the playout delay header extension following http://www.webrtc.org/experiments/rtp-hdrext/playout-delay
ea6e6a3    to
    3c49840      
    Compare
  
    
This interceptor adds the playout delay header extension following
https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/rtp-hdrext/playout-delay