forked from FFmpeg/FFmpeg
    
        
        - 
                Notifications
    You must be signed in to change notification settings 
- Fork 21
add NACK, RTX, DTLS active support #59
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
      
      
            JackLau1222
  wants to merge
  20
  commits into
  ossrs:workflows
  
    
      
        
          
  
    
      Choose a base branch
      
     
    
      
        
      
      
        
          
          
        
        
          
            
              
              
              
  
           
        
        
          
            
              
              
           
        
       
     
  
        
          
            
          
            
          
        
       
    
      
from
JackLau1222:whip_latest
  
      
      
   
  
    
  
  
  
 
  
      
    base: workflows
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
            
            
          Conversation
  
    
      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
    
  
  
    
    5982042    to
    4d12ed5      
    Compare
  
    a4c0f1f    to
    7652d4a      
    Compare
  
    2c40a5c    to
    80db6eb      
    Compare
  
    66dc45e    to
    9e10bdc      
    Compare
  
    
              
                    winlinvip
  
              
              reviewed
              
                  
                    Aug 6, 2025 
                  
              
              
            
            
              
                    winlinvip
  
              
              reviewed
              
                  
                    Aug 6, 2025 
                  
              
              
            
            
mark this ignore_ipv6 flag could ignore any IPv6 ICE candidate, preventing “No route to host” errors on devices without IPv6 connectivity. Signed-off-by: Jack Lau <jacklau1222@qq.com>
Remove redundant "WHIP: " prefix in log context since it already add whip context. Fix grammers in whip options descriptions Signed-off-by: Jack Lau <jacklau1222@qq.com>
AVCodecParameters::profile only contains constraint_set1_flag (AV_PROFILE_H264_CONSTRAINED 1<<9). So add H264 constraints flag fully parse refer to hlsenc write_codec_attr Signed-off-by: Jack Lau <jacklau1222@qq.com>
See RFC5280 4.1.2.2 Signed-off-by: Jack Lau <jacklau1222@qq.com>
See https://www.rfc-editor.org/rfc/rfc3550#section-6.1 Signed-off-by: Jack Lau <jacklau1222@qq.com>
9e10bdc    to
    bd86a05      
    Compare
  
    RTP retransmission described in RFC4588 (RTX) is an effective packet loss recovery technique for real-time applications with relaxed delay bounds. This patch provides a minimal implementation for RTX and RTCP NACK (RFC3940) and its associated SDP signaling and negotiation. Co-authored-by: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
limit the generated ssrc to 31 bit to avoid overflow risk when pass it to rtpenc as signed int. Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
add dtls_active flag to specify the dtls role properly set the send key and recv key depends on DTLS role As DTLS server, the recv key is client master key plus salt, the send key is server master key plus salt. As DTLS client, the recv key is server master key plus salt, the send key is client master key plus salt. Signed-off-by: Jack Lau <jacklau1222@qq.com>
This patch aims to simplify the dtls handshake process since dtls handshake use force block mode We can just use the return code instead of DTLSState enum Signed-off-by: Jack Lau <jacklau1222@qq.com>
See RFC 5245 Section 4.3: If an agent is a lite implementation, it MUST include an "a=ice-lite" session-level attribute in its SDP. If an agent is a full implementation, it MUST NOT include this attribute. Signed-off-by: Jack Lau <jacklau1222@qq.com>
This value is only useful when dtls handshake is NONBLOCK mode, dtls handshake just need to call ffurl_handshake once since it force block mode. Signed-off-by: Jack Lau <jacklau1222@qq.com>
We try to perform dtls handshake when the ICE is totally done. Refer to RFC8445, When peer's ICE is lite, the peer won't trigged check so FFmpeg just send STUN request and receive response, then ICE is done. When peer's ICE is full, the peer will send STUN request after reponse FFmpeg's request to ensure candidate pair become valid in both directions. Then the peer does nomination, and ICE is done. Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
…hared Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
Signed-off-by: Jack Lau <jacklau1222@qq.com>
bd86a05    to
    7f3a5fe      
    Compare
  
    
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      
  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.
  
    
  
    
No description provided.