rtpenc: Expose the max packet size via an avoption
This allows opting for a lower MTU than what the AVIOContext indicated, and allows writing into outputs that don't indicate an MTU at all (such as plain files, which is useful for testing). This also allows querying for the MTU via the avoption. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
		
							parent
							
								
									f553462041
								
							
						
					
					
						commit
						ba605cef79
					
				@ -33,6 +33,7 @@
 | 
			
		||||
static const AVOption options[] = {
 | 
			
		||||
    FF_RTP_FLAG_OPTS(RTPMuxContext, flags)
 | 
			
		||||
    { "payload_type", "Specify RTP payload type", offsetof(RTPMuxContext, payload_type), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, 127, AV_OPT_FLAG_ENCODING_PARAM },
 | 
			
		||||
    { "max_packet_size", "Max packet size", offsetof(RTPMuxContext, max_packet_size), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM },
 | 
			
		||||
    { NULL },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -109,6 +110,11 @@ static int rtp_write_header(AVFormatContext *s1)
 | 
			
		||||
        s->first_rtcp_ntp_time = (s1->start_time_realtime / 1000) * 1000 +
 | 
			
		||||
                                 NTP_OFFSET_US;
 | 
			
		||||
 | 
			
		||||
    if (s->max_packet_size) {
 | 
			
		||||
        if (s1->pb->max_packet_size)
 | 
			
		||||
            s->max_packet_size = FFMIN(s->max_payload_size,
 | 
			
		||||
                                       s1->pb->max_packet_size);
 | 
			
		||||
    } else
 | 
			
		||||
        s->max_packet_size = s1->pb->max_packet_size;
 | 
			
		||||
    if (s->max_packet_size <= 12) {
 | 
			
		||||
        av_log(s1, AV_LOG_ERROR, "Max packet size %d too low\n", s->max_packet_size);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user